FreeSG is a general-purpose scene-graph library built on top of the Agar
FreeSG implements a compact and easily extensible object/scene graph
representation, designed to simplify such tasks as real-time rendering and
In addition to the base scene-graph library (libfreesg), the FreeSG distribution also includes a separate library for geometrically constrained 2D sketching (libfreesg_sk), and a library for tiling (libfreesg_map). These libraries share the same version number and release cycle, but they are separate and can be always packaged and distributed independently.
Since the FreeSG API Reference is also intended as a detailed specification
(defining function prototypes, structures and function behavior in detail),
the content can become repetitive and difficult to read, so the API Reference
uses a number of conventions:
FreeSG uses the Agar object system. There is generally one manual page per Agar object class. A number of manual page sections are standard throughout the documentation, this includes:
freesg library implements scene rendering and geometrical methods in 3D.
To use this library, link against freesg-config --libs
freesg_sk library implements the standard dimensioned 2D sketching capabilities one
would find in a modern CAD application.
Sketches can contain sets of metric relations (i.e., distances, angles)
and logical relations (i.e., coincidence, parallelism, tangency), and
the SK solver attempts to find a solution using degree-of-freedom analysis.
To use this library, link against freesg-sk-config --libs.
freesg_map library implements scenes constructed from traditional 2D tiling methods.
To use this library, link against freesg-map-config --libs.