← All tools

s3dgraphy

stable
Python library
For: developer

The 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.