freestyle-sculpt

Crates.iofreestyle-sculpt
lib.rsfreestyle-sculpt
version0.3.0
created_at2025-05-15 05:15:05.606796+00
updated_at2025-06-02 00:54:37.292555+00
descriptionDyntopo real-time 3D sculpting in Rust
homepage
repositoryhttps://github.com/Synphonyte/freestyle-sculpt
max_upload_size
id1674425
size4,932,235
Marc-Stefan Cassola (maccesch)

documentation

README

Freestyle Sculpt

Crates.io Docs MIT/Apache 2.0 Build Status

This is a pure Rust implementation of Freestyle Sculpting, a real-time dynamic topology sculpting algorithm.

It is based on the paper Freestyle: Sculpting meshes with self-adaptive topology by Lucian Stanculescu, Raphaƫlle Chaine, Marie-Paule Cani. This is the same algorithm that is used by the Dyntopo sculpting mode in Blender.

Freestyle Sculpt Demo

Please check out the bevy-basic-sculpt example to see how it can be used in an interactive application.

Limitations

At the moment it doesn't support topology genus changes, i.e. no splitting or merging of different parts of the mesh.

Optional Cargo features

  • rerun: Enables recording of the mesh graph and the different algorithms to Rerun for visualization.
  • bevy: Enables integration with the Bevy game engine.

Customize sculpting

To implement a custom deformation field, you can create a struct that implements the [DeformationField] trait. Have a look at the existing deformation fields in the [deformation] module for inspiration.

If you want to implement a custom selection strategy, you can create a struct that implements the [MeshSelector] trait. Have a look at the existing selection strategies in the [selectors] module for inspiration.

Commit count: 16

cargo fmt