#mesh #3d #real-time #topology #graphics #sculpting

freestyle-sculpt

Dyntopo real-time 3D sculpting in Rust

2 releases

Uses new Rust 2024

new 0.1.1 May 15, 2025
0.1.0 May 15, 2025

#1049 in Math

44 downloads per month

MIT license

4.5MB
463 lines

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.

Dependencies

~14–50MB
~862K SLoC