Getting started
From download to a repaired, remeshed and verified part in a few commands.
1. Download and install
Get the archive for your system from the download page, check it against SHA256SUMS, unpack it and put betti on your PATH:
sha256sum -c SHA256SUMS --ignore-missing
tar xzf betti-v0.20.0-linux-amd64.tar.gz
install -m 755 betti-v0.20.0-linux-amd64/betti ~/.local/bin/betti
betti version
On Windows, unzip the archive and put betti.exe in a folder listed in PATH. On macOS, if the system refuses to open a downloaded program, allow it under System Settings, Privacy & Security.
2. Find your way
betti help # every command, by module
betti fix # a module's commands
betti help fix repair # a command's usage, flags and examples
Core commands are at the top level, as in betti info; every other module's commands are under its name, as in betti mesh remesh. The docs carry the same text as the built-in help.
3. Sign in
Core commands (info, box, verify, convert, run) are free and need no sign-in. For the other modules, sign in and ask for the ones you need:
betti access login
betti access
betti access request fix mesh -note "preparing parts for CFD"
See access and licensing for more.
4. First commands
See what a file is: its size, parts, holes, crossings and element quality.
betti info part.stl
Repair it into closed, outward-facing solids, then remesh it into even triangles of 1% of its size:
betti fix repair part.stl fixed.obj
betti mesh remesh -size 1% fixed.obj even.obj
Check the result against the input: distances between them, sharp edges kept, and the same topology.
betti verify part.stl even.obj
Have a STEP model? Check it, heal it, or mesh it watertight with each triangle tagged by its CAD face:
betti cad check part.step
betti cad heal part.step healed.step
betti cad mesh part.step part.vtu -size 2
Every command takes -json to print its result as JSON, -q to print nothing but errors, and -v to show its stages and their times. Ctrl-C stops a command within moments, and a file is written whole or not at all.
5. Chain steps with run
betti run runs steps one after another on a mesh kept in memory and writes the last one's mesh. Steps are commands with their flags, separated by +:
betti run part.stl out.obj fix repair + mesh remesh -size 1% + shape defeature -size 2
Put steps in a recipe file, one to a line, with # starting a comment, and run it with -recipe. A save step writes the mesh as it is at that point:
# clean-for-print.txt
fix repair
save repaired.obj
mesh remesh -size 1%
additive place
betti run part.stl ready.3mf -recipe clean-for-print.txt
The steps a chain can take are listed on the run page.
6. File formats
| Format | Extension | Read | Write |
|---|---|---|---|
| Wavefront OBJ | .obj | yes | yes |
| OFF | .off | yes | yes |
| PLY | .ply | yes | yes |
| Gmsh | .msh | yes | yes |
| VTK unstructured grid | .vtu | yes | yes |
| 3MF | .3mf | yes | yes |
| STL | .stl | yes | no |
| STEP (CAD module) | .step | yes | cad heal only |
Formats are chosen by extension. STL is read but not written: its single precision can make faces cross. Quads are kept in OBJ, OFF and PLY. Particle and sphere commands write their own formats for SPH and DEM codes; see particles fill, particles clump and particles spheres.
7. Lengths
Lengths are absolute, in the file's units, or a percentage of the part's bounding-box diagonal:
betti mesh remesh -size 2 part.stl even.obj # edges about 2 long
betti mesh remesh -size 1% part.stl even.obj # edges about 1% of the part's diagonal
Percentages make a command work the same on parts of any size and unit.