Voxygon is a framework to build experiments and games about the volumetric edition and simulation of polygonal objects.
The primary purpose of the project is to develop a simple and powerful methodology that I can use to experiment with 3D geometry, world editing, physics and a specific aesthetic that has performance in mind.
The volumetric primitive is not a cube (as can be seen in voxel games), but a tetrahedron. Each cube (from the matrix of the object space) is decomposed into 24 tetrahedra, which form one square pyramid per face of the cube (oriented towards the center). This allows to build geometry with 90 and 45 degrees angles. To know more about the need for that primitive, here is the genesis.
The project aims to implement:
- An editor and format to work with the geometry and materials.
- Abstractions to build huge worlds that can be explored and modified.
- A non- general purpose physics engine.
- A renderer built with Luminescent (a rendering library developed in parallel, mostly for Voxygon).
This framework, contrary to Teningur, puts more emphasis on a vector simulation (transformations, physics) than on a matrical simulation.
The framework is written with a methodology composed of mostly Lua/LuaJIT and C (rarely outside of the FFI; it may be used for optimized paths) and LÖVE. The framework seeks embeddability, so it can be used server-side.