Skip to content

Repository files navigation

trueform-benchmarks

Benchmark harnesses and published measurements for TrueForm in C++, Python, and TypeScript.

The repository contains the code, benchmark contracts, result CSVs, metadata, aggregation scripts, and figures behind the public benchmark page. Benchmark corpora are intentionally not distributed here.

Benchmarks

Modules follow the order used by the TrueForm documentation. Within Spatial, tree construction precedes the queries that consume the tree.

Module Benchmark C++ Python TypeScript Published results
Spatial Spatial tree build code code code data
Spatial Closest point code code code data
Topology Connected components code code code data
Topology Delaunay and CDT code code code data
Geometry Principal curvatures code code code data
Geometry ICP registration code code — data
Remesh Mesh decimation code code code data
Arrangement Polygon arrangements code code code data
Iso Isocontours code code code data
Iso Embedded isocontours code code code data
CSG Pairwise mesh booleans code code code data
CSG Variadic mesh booleans code code — data
I/O Mesh I/O code code code data

The language columns link to the harness implementations. A dash means that no published benchmark exists for that language, not that the operation is absent from TrueForm.

Repository layout

definitions/   language-neutral benchmark contracts
cpp/           C++ harnesses and CMake configuration
py/            Python harnesses
ts/            TypeScript and WebAssembly harnesses
results/runs/  immutable CSVs and metadata from published runs
results/derived/ aggregated CSVs used by figures
results/published/ published JSON summaries
results/figures/ figures used by the benchmark page
results/raw/   ignored scratch output produced by general harnesses
viz/           aggregation and figure-generation code

AGENTS.md defines the repository-wide rules. Each language directory has its own AGENTS.md with build and implementation guidance.

Inputs

The corpora remain private working data and are not part of this repository. Harnesses accept a caller-supplied manifest or operand list containing paths to local mesh or PSLG files. The benchmark definition states the required input shape and workload; published CSVs retain stable case IDs, sizes, parameters, and validation results without embedding the source geometry.

Results

Published result directories are snapshots, not scratch space. They contain the existing measurements used for the figures; creating this repository did not rerun or alter any benchmark measurement.

See METHODOLOGY.md for timing and comparison rules and VERSIONS.md for the recorded library versions.

Running locally

Install the dependencies for the language you want to test, prepare a local operand list, and invoke the corresponding harness directly. The orchestration scripts at the repository root show the exact multi-process workflows used for the newer published runs.

For connected components, the publication runner balances both library and case order across three fresh processes and applies one allocator policy to every implementation:

python run_connected_components.py \
  --operands /path/to/local-mesh-list.txt \
  --output-root results/local/connected-components \
  --cpp-build /path/to/cpp/build \
  --python /path/to/python

Nothing runs during installation. Do not overwrite results/runs; write local experiments under results/local or results/raw, both ignored by Git.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages