Raw 3D data from LiDAR, CAD files (STEP, STL), depth cameras, or NeRFs is normalized.
Example encoding:
Contains the version, endianness (little-endian for most modern systems), and a hash map of the "Geometry Tree" offset.
struct AIPHeader
char magic[4]; // "GDAI"
uint32_t version; // e.g., 0x00010002
uint64_t vertex_offset; // Byte position of vertex data
uint64_t topology_offset;
uint64_t attribute_offset;
uint64_t graph_offset; // The "secret sauce" - computational graph
;
geometry3d.aip can encode continuous implicit representations as weights of a Multi-Layer Perceptron (MLP). This allows AI to learn high-quality 3D shapes from 2D views alone. geometry3d.aip
The library defines several fundamental geometric objects:
| Class | Description |
|-------|-------------|
| Point | A point in 3D space (x, y, z) |
| Vector | A direction vector |
| Line | Infinite line defined by a point + direction |
| LineSegment | Finite line between two points |
| Plane | Infinite plane defined by a point + normal vector |
| Triangle | Triangle defined by 3 points |
| Sphere | Sphere defined by center + radius |
| Box | Axis-aligned bounding box |
| Ray | Half-line from a point in a direction | Raw 3D data from LiDAR, CAD files (STEP,
temperature = mesh.get_attribute('temperature') # Shape: (N,)
u, v = np.mgrid[0:2*np.pi:20j, 0:np.pi:10j] sphere = Sphere(Point(0,0,0), 1) x = sphere.center.x + sphere.radius * np.cos(u) * np.sin(v) y = sphere.center.y + sphere.radius * np.sin(u) * np.sin(v) z = sphere.center.z + sphere.radius * np.cos(v) ax.plot_wireframe(x, y, z, color='b', alpha=0.3) geometry3d
plt.show()
Note: Not all
geometry3dversions include avisualizationsubmodule. For custom shapes, usematplotlib’s 3D tools directly.
The preprocessed output is exposed as framework-specific tensors: