s3dgraphy
stableThe computational core of the EM Framework. Reads, writes, validates and converts EM graphs (GraphML / JSON), enforces the data model, and powers every other tool in the framework.
Or pick a specific EM version below ↓
What it is
s3dgraphy is the Python library that implements the Extended Matrix formal language as a property knowledge graph. It is what every EMF tool reads and writes under the hood — yEd produces the GraphML, EM Tools loads it through s3dgraphy, Heriverse consumes its JSON export.
You normally do not interact with s3dgraphy directly: EM Tools wraps it inside the Blender add-on. You will reach for the library when you want to bring EM into a different platform — Revit, 3ds Max, Unity, Unreal, a CLI batch job, a Jupyter notebook.
Installing
pip install s3dgraphy
See the GitHub repository for the API reference and the import/export utilities.
When to use it
- You are building a custom pipeline that needs to read EM graphs.
- You want CI validation of the graphs in your repository.
- You are integrating EM into a host platform that is not Blender.
- You are writing code that talks to the Heriverse JSON format directly.
Production users & integrations
PyArchInit is the first production consumer of s3dgraphy. It is an open-source QGIS plugin for archaeological data management with particular strength in 2D GIS visualization of stratigraphic data, maintained by an active community led by Luca Mandolesi.
The PyArchInit integration drove the design of the LocationNodeGroup
in s3dgraphy 0.1.41 (insight from
issue #5 by Enzo
Cocca). Use the PyArchInit tool page and the
Extended Matrix manual cookbook
as a worked example of how an independent tool bridges into Extended
Matrix through s3dgraphy.
Open invitation
s3dgraphy is designed to be consumed by other independent tools. Revit, Unreal Engine, Houdini, PostgreSQL/PostGIS, and similar domain-specific tools are natural candidates for similar bridges. If you maintain such a project and want to explore an integration, look at PyArchInit as a worked example or open an issue on GitHub.
Shipped in EM versions
One-click download for each combination — or click the EM version number to see its full compatibility matrix.
| Download | EM version | Tool version | Status | Note |
|---|---|---|---|---|
| ⬇ download | EM 1.6 | 1.6.0.dev9 (PyPI pre-release) | included | Dev releases are published on PyPI as pre-releases. Install with `pip install s3dgraphy==1.6.0.dev9` (the explicit pin is required — pip's default resolver skips pre-releases). Use `pip install --upgrade 's3dgraphy>=1.6.0.dev0,<1.6.1'` to follow the dev9 → dev10 → … track. To track HEAD instead, clone the branch and `pip install -e .`. |
| ⬇ download | EM 1.5 | 1.5+ | included | First standalone release of the library. In 1.4 the code was bundled inside EM Tools. Install with `pip install s3dgraphy` (Python 3.11+). EM Tools 1.5 already bundles this internally — you only need pip when scripting against EM data outside Blender. |