Kepler3D is an experimental 3D rigid-body physics engine prototype focused on physical realism and CPU efficiency.
This repository is an unreleased personal project that was never fully finished.
- Development status: archived/inactive
- Stability: research/prototype quality
- API status: unstable and not production-ready
The code is shared as a reference for architecture ideas, math/physics utilities, and collision/solver experiments.
- Model linear and angular rigid-body dynamics using classical mechanics.
- Keep simulation behavior physically motivated (no arcade-style damping hacks by default).
- Support multiple primitive shapes and contact generation.
- Organize simulation steps as explicit engine actions.
- Scale simulation work across CPU cores through a master/worker architecture.
Implemented components include:
- Math/types layer: vectors, matrices, quaternions, transforms, fixed-point abstractions.
- Physics core: force integration, manifolds, constraints, and contact/friction constraint types.
- Collision pipeline: broadphase/narrowphase structure and MPR-based collider implementation.
- Shapes: sphere, box, capsule, cylinder, convex hull.
- Engine architecture: scheduler, command/postulation model, worker orchestration.
Known limitations:
- Incomplete feature set and limited documentation.
- Public API and module boundaries still reflect work-in-progress decisions.
- Rendering demos/tests are experimental and intended for local validation.
Kepler3D uses CMake (minimum 3.6) and C++17.
cmake -S . -B out/build -DKEPLER3D_TESTS=OFF
cmake --build out/build --config Releasecmake -S . -B out/build-tests -DKEPLER3D_TESTS=ON
cmake --build out/build-tests --config ReleaseFrom the build directory:
ctest --output-on-failureIf you use a multi-config generator (for example Visual Studio), run:
ctest -C Release --output-on-failureKEPLER3D_TESTS: Build tests (default ON for top-level builds).KEPLER3D_WARNINGS_AS_ERRORS: Treat warnings as errors.KEPLER3D_USE_FIXED_POINT: Declared CMake option for fixed-point mode (currently not fully wired through compile definitions).KEPLER3D_DEBUG_BUILD: Use debug-oriented compile options.
src/: engine source code.include/: public include directory (currently minimal;Kepler3D.his present as a placeholder).tests/: unit tests and rendering/engine experiments.externals/: vendored dependencies (for example Catch2).dependencies/: test/demo support libraries.
The project is named in tribute to Johannes Kepler and his work on planetary motion.
Licensed under the zlib license. See LICENSE.
This project was strongly inspired by modern physics engine design work, especially Box2D by Erin Catto.