A Python Library to age 3d models by simulating the effects of weather
Age3D is a Python Library that allows for eroding of 3d models. It uses the .stl
file format and incorporates Open3D functionality, allowing users to simulate material removal.
Features:
- Conversion of
.stl
toTriangleMesh
- Allows for Segmentation of Mesh Vertices based on Height Params
- Erodes Mesh by Simulating Erosion Particles
- Customizable Number of Particles
- Customizable Lifetime of Particles
- Performs Raycasting Computation to Only Remove Material
age3d requires the open3d Python Library which is installed during libray installation.
The recommended way to install age3d is through pip.
pip install age3d
Import the library:
import age3d
Import a .stl
model where file_path
points to the location:
mesh = age3d.import_mesh(file_path)
If the mesh
is low-poly, run with number_of_subdivisions > 0
:
mesh = age3d.mesh_subdivision(mesh, iterations = number_of_subdivisions)
Erode the mesh
:
eroded_mesh = age3d.erode(mesh)
If Erosion with customized Passes and Max Particle Lifetime:
updated_vertices, eroded_mesh = age3d.erode(mesh, iterations = 2, erosion_lifetime = 10)
Make a PointCloud
with Red Color Points:
point_cloud = age3d.make_point_cloud(mesh, color = [255, 0, 0])
Visualize Eroded Mesh:
eroded_mesh.compute_vertex_normals()
age3d.visualize(eroded_mesh)
or
eroded_mesh.compute_vertex_normals()
age3d.visualize([eroded_mesh])
Visualize Mesh & Point Cloud:
eroded_mesh.compute_vertex_normals()
age3d.visualize([eroded_mesh, point_cloud])
Visualize Mesh & Point Cloud with Wireframe:
eroded_mesh.compute_vertex_normals()
age3d.visualize([eroded_mesh, point_cloud], show_wireframe = True)
If you encounter an issue, please feel free to raise it by opening an issue. Likewise, if you have resolved an issue, you are welcome to open a pull request.
See more at CONTRIBUTING.md