FreeSG ("Free" as in "Freedom" and "Free of bloat") is an open-source 2D/3D engine and computational geometry library built on top of Agar. FreeSG provides a general-purpose scene-graph system, designed to simplify such tasks as real-time rendering and geometrical queries. FreeSG works out of the box on all Agar-supported platforms.
FreeSG follows Agar's modular object-oriented design, which allows the library to remain completely generic, while application-specific classes can be implemented in separate libraries, or as part of the application. FreeSG implements rendering of scenes and objects, intersection tests, and solving of systems of geometrical constraints (using degree-of-freedom analysis techniques). FreeSG is released under the revised BSD license.
There is no official release of FreeSG yet. Sources are available via subversion at: https://dev.csoft.net/freesg/trunk.
The FreeSG distribution is organized in separate libraries:
- SG: The base scene graph library. Using a compact scene description language, hierarchical scenes composed of arbitrary objects (e.g., polyhedrons, viewpoints, light sources) can be expressed. The relationship between those objects may be defined in terms of classical affine transformations, or systems of geometrical constraints.
- SK: Implements display and edition of dimensioned 2D vector drawings (or sketches). Sketch elements can be expressed using systems of geometrical constraints.
- RG: Rendering and edition of feature-based, composited 2D raster graphics.
- MAP: Implements a classical "tile" engine built on top of RG.
If you have any questions, comments or suggestions, don't hesitate to
contact the maintainer.
There are also forums and an IRC channel for the project.
Your feedback and contributions help us build a better library with better documentation. Don't hesitate to send us your bug reports and enhancement/feature requests with Bugzilla.
"The idea is if you use those two shapes and try to colour the plane with them so the colours match, then the only way you can do this is to produce a pattern which never repeats itself." -- Roger Penrose