We welcome contributions—bug fixes, new features, documentation, examples, and benchmarks.
Browse open issues labeled by difficulty:
Easy — Good first issues. Bug fixes, documentation, straightforward enhancements.
Label: difficulty: easy
Medium — Features, refactors, complex bugs. Requires familiarity with the codebase.
Label: difficulty: medium
Hard — Novel algorithms, architectural changes, deep geometric reasoning.
Label: difficulty: hard
Pick an issue, comment that you're working on it, and get started.
| Directory | Description |
|---|---|
include/ | Header-only C++17 core library |
python/ | Python bindings, tests, and examples |
vtk/ | VTK integration library and examples |
examples/ | C++ examples |
benchmarks/ | Performance comparisons |
tests/ | C++ tests |
docs/ | Documentation |
verify/ | Build and test verification scripts |
Header-only. No build required—just include and link tf::trueform.
CMAKE_BUILD_PARALLEL_LEVEL=8 pip wheel . -w dist
pip install dist/trueform-*.whl
Run tests:
pytest python/tests
cmake -B build -DTF_BUILD_VTK_INTEGRATION=ON
cmake --build build --parallel
VTK examples:
cmake -B build -DTF_BUILD_VTK_INTEGRATION=ON -DTF_BUILD_VTK_EXAMPLES=ON
cmake --build build --parallel --target trueform_vtk_examples
cmake -B build -DTF_BUILD_EXAMPLES=ON
cmake --build build --parallel --target trueform_examples
cmake -B build -DTF_BUILD_BENCHMARKS=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel --target benchmarks
1. Fork and branch
git checkout -b feature/your-feature-name
2. Make your changes following the code guidelines below.
3. Commit with clear messages
One-liner summary, then explanation if needed:
git commit -m "Add linear terms to curvature quadratic fitting
Extends the fitted surface from ax² + bxy + cy² to include dx + ey.
Linear terms absorb local plane tilt, improving robustness when the
neighborhood center doesn't coincide with the vertex."
4. Verify build and tests pass
python -m verify
This clones the repo to a temp directory and verifies everything works from scratch: C++ build and installation, find_package integration, Python pip install, and the full test suite.
Options:
--skip-vtk — Skip VTK integration if you don't have VTK installed--skip-python — Skip Python package verification--keep — Keep build artifacts for debugging--work-dir <path> — Use a specific working directory--toolchain-file <path> — CMake toolchain file (also reads CMAKE_TOOLCHAIN_FILE env var)5. Push and open a pull request
git push origin feature/your-feature-name
Reference the issue (e.g., "Fixes #42") and describe what you did.
Trueform is built on composability and zero-copy semantics. When contributing:
tf:: namespace gets its own file in the module directory. Include only the functions you use, not entire modules.snake_case for functions/variables, PascalCase for template arguments.Docstrings: Add docstrings to new functions:
/// @brief, /// @param, /// @return) in header filesDocs site: If you add a public API, update docs/content/ with:
Follow the existing structure in the modules documentation.
By contributing, you certify that:
If your employer owns your work, ensure they're comfortable with this arrangement.
See License for full details.
Thank you for contributing to trueform.