Skip to main content

age3d

A Python Library to age 3d models by simulating the effects of weather

Build Status codecov GitHub PyPI Documentation Status

Documentation

Overview

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:

  • Simplified Workflow for .stl $\rightarrow$ TriangleMesh $\rightarrow$ PointCloud & BitMask
  • Visualization of TriangleMesh & PointCloud
  • Calculate Metric of TriangleMesh
  • Erosion Method for Aging
    • Customizable Number of Passes of Simulated Erosion Particles
    • Customizable lifetime of Simulated Erosion Particles

Dependencies

age3d requires the open3d Python Library which is installed during libray installation.

Installation

The recommended way to install age3d is through pip.

pip install age3d

Usage

Import the library:

import age3d

Import a .stl model where file_path points to the location:

mesh = age3d.import_mesh(file_path)

Erosion

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)

Point Cloud Creation

Make a PointCloud with Red Color Points:

point_cloud = age3d.make_point_cloud(mesh, color = [255, 0, 0])

Visualization

Visualize Eroded Mesh:

eroded_mesh.compute_vertex_normals()
age3d.visualize(mesh)

or

eroded_mesh.compute_vertex_normals()
age3d.visualize([mesh])

Visualize Mesh & Point Cloud:

eroded_mesh.compute_vertex_normals()
age3d.visualize([mesh, point_cloud])

Visualize Mesh & Point Cloud with Wireframe:

eroded_mesh.compute_vertex_normals()
age3d.visualize([mesh, point_cloud], show_wireframe = True)

Contributing

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

Metadata

Release files for age3d 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for age3d 0.4.0
File Size Uploaded
age3d-0.4.0.tar.gz 1.2 MB Details

Release files / age3d-0.4.0.tar.gz

Download URL age3d-0.4.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
e9cdc068902f631b5f684db419c3565ae7fe9191fb279b12b84e5e2492c62469
BLAKE2b-256 checksum
How to use checksums
b5cac998f8e8b5ce73f3f6b1ea455b2590f9053aff7e169bfb3736c5f2418f4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release history Release notifications | RSS feed

This release

0.4.0 This release

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.2

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page