# Point Clouds in Implicit Modeling

To drive a field or create implicit geometry, you can import a point cloud or create one from scratch.

Many of the contexts in Inspire Implicit Modeling permit you to drive the properties of a geometry with a field. Examples include changing the relative density or thickness of a lattice, or the radius of a fillet at different points in space. If the field used to control this sizing is defined from geometry, this is very straightforward. However, users often only know about the sizing requirements at specific points in space. The sizing elsewhere is less strict and can be generated automatically using different interpolation techniques, drawing influence from nearby locations where information is supplied. This scenario is handled using the Point Cloud context in Implicit Modeling.

The Point Cloud context asks you to provide data at known locations in space by specifying the x-, y-, and z-coordinate of each point, and also the scalar value of the field at that point. Point cloud data in this format can be imported from a .csv file, or created from scratch using the user interface. The scalar values could be derived from simulation results, known quantities based on engineering experience, driven by an equation, etc. For every position in a field that is not represented explicitly by a point in the cloud, the scalar value is created automatically using interpolation. Example interpolation techniques include Inverse Distance Weighting and Nearest Neighbor interpolation.

Inverse Distance Weighting behaves much like gravitation. For example, a point particle positioned between the earth and the moon would experience the gravitational effects of both the earth and the moon. The contribution of gravitation from the earth and the moon depends on the position of the point particle relative to both bodies, and the strength of the gravitational field from each body at that location. The same is true in Inverse Distance Weighting interpolation, where the influence of each of the cloud’s points (and their respective scalar values) at a certain position in space depends on the distance to each point in the cloud and the sign and magnitude of the scalar values. In the example image, below, Inverse Distance weighting has been used to smoothly interpolate the known relative density values of the lattice that have been specified at the point locations.

Nearest Neighbor interpolation is simpler to imagine. Each position in the field adopts the scalar value of the nearest point in the point cloud. This technique forces abrupt changes in the resulting Interpolating Scalar field as nearby positions in space may "snap" to different scalar values.

## Create a Point Cloud

You can import a .csv file or build a point cloud from scratch. When modifying the point cloud, you can change the number and position of points, the interpolation strategy and, for Inverse Distance Weighting interpolation, the exponent. You can save the point cloud as a .csv file.

When creating a point cloud to generate implicit geometry, keep in the mind that the main concept in implicit modeling is to represent a surface as the zero level set of an implicit function. This function takes a point in 3D space as input and returns a scalar value. Points with values near zero are considered part of the surface, while points with positive or negative values are outside or inside the surface, respectively.

- Generate a continuous surface representation from point cloud data to create implicit geometry. For example, you could heal topology optimization data where there's a dimple that you want to remove. You could take the union of the topology optimization field and a point cloud field to fill it in.
- Create a field with the point cloud as the driving object. You can then map the parameters of an implicit object to the field driven by the point cloud. For example, the scalar values in a point cloud may relate to stress data from a simulation. For this illustrative example, assume this data lies in the range of 1 kPa to 5 kPa, depending on the point's location. If this data is used to create a field that controls the radius of the beams in a strut lattice, these values need to be rescaled to lie in the range of thicknesses that are well-suited to these values. Continuing with this example, you may know that regions experiencing stress of 1 kPa should have a thickness of 1mm, and regions experiencing stress of 5kPa require a thickness of 5 mm. The rescale feature in the Field context should be used to map the range of stresses into the range of strut diameter (i.e., 1 kPa maps to 1 mm and 5 kPa maps to 5mm). Please note that these values are only for illustration purposes and you should use values appropriate for your application.