EMTools is a Blender extension that brings the formal language Extended Matrix within Blender 3D. Designed and developed by E. Demetrescu (CNR-ISPC), it is part of the Extended Matrix Framework (EMF).
Version 1.5 is a major rewrite featuring a modular architecture, the s3Dgraphy graph library, multi-platform wheel distribution, and native support for the Blender Extensions platform.
- Blender Extension format - Native
.zippackages with bundled platform-specific wheels for Blender 5.0.x (Python 3.11) and 5.1+ (Python 3.13) - s3Dgraphy integration - All graph operations (parsing, querying, export) powered by the s3Dgraphy library
- Modular architecture - Code reorganised into dedicated managers: Stratigraphy, Epoch, Visual, Reconstruction, Paradata, Document
- Graph Editor / Viewer - Interactive node-graph visualisation of the Extended Matrix with dynamic sockets generated from the s3Dgraphy data-model
- Visual Manager - Property-based colouring, colour ramps, viewport labels and overlays
- Landscape system - Multi-graph support and CronoFilter horizons for landscape-scale projects
- Proxy Box Creator - Create proxy geometry from 3D-picked bounding points
- Proxy-to-RM projection - Project proxy materials onto reconstruction models
- Tapestry integration (experimental) - Semantic search and linked-data enrichment
- XLSX import - Import stratigraphic data and paradata from spreadsheets
- Multi-platform CI/CD - GitHub Actions builds per-platform releases automatically (
em.sh devrel)
- Extended Matrix Integration - Full support for the EM formal language in Blender
- Archaeological Workflows - 3D stratigraphic annotation and analysis
- Reconstruction Hypotheses - Create and manage multiple reconstruction scenarios (RM Manager)
- Data Export - Export to ATON 3 (EMviq), GraphML, XLSX, OBJ and various formats
- Period Visualisation - Epoch-based colouring, EM display modes, property-based colouring with colour ramps
- Statistical Tools (experimental) - Volume calculations, source analysis, property density
- User Manual - Complete documentation
- Installation Guide - Setup instructions
- API Reference - Developer documentation
- Telegram Group - Join our community
- Facebook Group - Extended Matrix users
- EM Website - Official website
- Go to the Releases page
- Download the
.zipmatching your platform and Blender version:- Blender 5.0.x →
blender50files (Python 3.11) - Blender 5.1+ →
blender51files (Python 3.13)
- Blender 5.0.x →
- In Blender: Extensions → Install from Disk
- Select the downloaded zip file (do not unzip) and enable the extension
# Clone the development branch
git clone --branch EMtools_dev1.5.0Beta3 https://github.com/zalmoxes-laran/EM-blender-tools.git
cd EM-blender-tools
# One-time: create dev venv for VSCode IntelliSense (run once after cloning)
chmod +x em.sh
./em.sh first_setup # creates .venv/ and points VSCode at it
# On Windows: .\em.bat first_setup
# Setup development environment (downloads platform wheels)
# For macOS / Linux
./em.sh setup # Python 3.11 (Blender 5.0.x)
./em.sh setup 3.13 # Python 3.13 (Blender 5.1+)
./em.sh setup force all # Force re-download for both versions
# For Windows
.\em.bat setup
# Activate s3dgraphy development version (if working on the library)
./em.sh s3d # Auto-detect local s3Dgraphy repo
./em.sh s3d off # Switch back to PyPI version
# Open in VSCode and use the "Blender Development" extension to run Blender
code .See ./em.sh help for the full list of development commands.
- ✅ Extension format migration
- ✅ Automated dependency management and multi-platform wheels
- ✅ s3Dgraphy library integration
- ✅ Modular manager architecture
- ✅ Graph Editor / Viewer
- ✅ Visual Manager with property colouring
- ✅ Landscape multi-graph system
- 🚧 Enhanced graph visualisation (dynamic node generation)
- 🔮 Hybrid enrichment: add US and paradata from XLSX pipeline to an existing in-scene GraphML
- Blender 4.4+ / 5.0.x / 5.1+
- Python 3.11 (Blender 5.0.x) or Python 3.13 (Blender 5.1+)
- 500 MB free disk space
- 4 GB RAM (8 GB recommended)
We welcome contributions! Please see our Contributing Guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the GNU General Public License v3.0 - see LICENSE for details.
Lead Developer: Emanuel Demetrescu (CNR-ISPC)
Contributors: See Contributors
- Email: emanuel.demetrescu@cnr.it
- Telegram: @UserGroupEM
- Issues: GitHub Issues
Made with ❤️ for the Cultural Heritage community