This panel (Fig. 2) allows to create the first connection between Blender and the Extended Matrix (.graphml file).
Press the AddGraphML and locate the .graphml file wiin the Path section (NB: before closing the path window remember to uncheck relativepath within the settings.
Alternatively, it is possible to paste the entire path within the empty line).
When a GraphML is loaded (Fig. 3), on the left side of the EM Data Tree window the GraphML ID will appear (for example, the ID: GT16).
On the same line, on the right side, a green square will show up.
The green color cofirms that a connection between the GraphML and EMtools has been established.
Note
To correctly link the .graphml file with the EMDataTree panel it is mandaotry to insert, at least, the GraphML ID on the title of the Swimlanenode (1.5 dev4 palette); the first node that needs to be imported in the yEd space to start the creation of an Extended Matrix (Fig. 4).
Next to the green (or red) square, three buttons complete the right side of the line (Fig. 3): the Update button allows to refresh the .graphml file, if changes have been applied on the EM graph during the modelling session; the ActivateEM button consent to explore only the selected GraphML; and the pubblish button appears when the multigraph mode is enabled.
This version of EMtools allows to activate the MultigraphMode, this option consent to upload and visualize multiple graphs.
To upload a new graph and explore its information user can follow all the steps already explained.
Note
This version of EMtools include info boxes.
When the info button is selected an info box will appears with more information related to that specific part of the tool.
Once the connection has been established, EMTools will summarize the most important information (US/USV; Epochs; Properties; Sources) within a simple table under the Path section (Fig. 3).
The RemoveGraphML button allows to remove one or more EMs from the EM Data Tree list.
Note
Loading DosCo documents into the graph
The panel commands described below load documents from your DosCo
folder into the EM graph as nodes. The link between the file on
disk and the graph node is preserved; if you re-iterate your
DosCo (add new entries, update existing ones), reload from this
panel to surface the changes. For the DosCo concept, folder layout
and iteration pattern, see Iterating the DosCo
in the Extended Matrix language manual.
In this panel (Fig. 3) users can also link the path to the DosCo folder, where sources are stored.
To locate sources, users must follow the same guidelines previously outlined for the localization of the EM file.
If the EM graph presents a connection with and external database, EMTools allows to import databases to maintain data connection also within Blender.
To establish the connection with EMtools:
expand the Auxiliaryfiles section and press Add;
select the type (Generic Excel, PyArchInit, EMdb Excel);
indicate the exact location of the Auxiliary file and click on the Accept button.
Note
When EMdb Excel type is selected a Format menu appears, select the correct format from the list.
Auxiliary files are not part of the EM graph’s core structure.
The graph (.graphml) defines stratigraphy, proxies, sources and
their logical relations; auxiliary files provide additional,
tabular information that EMtools attaches to existing graph nodes
at import time. They live outside the graph and can be re-imported,
re-mapped or detached without altering the topology of the
reconstruction.
The three currently supported auxiliary types behave the same way
conceptually but differ in their source format:
Generic Excel — any .xlsx with a header row; mapping is
defined by the user.
EMdb Excel — a tabular database structured according to the
EMdb conventions; mapping is driven by a JSON mapping file
(see JSON mapping template below).
Important
Auxiliary files in this sense (tabular data attached at import
time via a mapping) must not be confused with auxiliary
stratigraphic nodes in the EM language — Continuity and
related node types that belong to the formal notation. The
former is a data plumbing feature of EMtools; the latter is a
modelling primitive of the language. See the EM language
manual for the latter.
Typical use cases:
enrich existing US/USV nodes with material qualia, dating
ranges, excavator notes that live in a separate spreadsheet;
link photo paths and metadata to stratigraphic units without
redrawing the graph in yEd
(see Linking Photos as Auxiliary Files for the step-by-step procedure);
merge field-database records (pyArchInit) into an already
authored graph.
For the EMdb Excel (and Generic Excel) auxiliary types,
EMtools consumes a JSON mapping file that declares how each column
of the spreadsheet should be projected onto graph properties.
A minimal mapping has the following shape:
Each row of the spreadsheet (from start_row onward) is matched
against an existing graph node via id_column. For each entry
in mappings, EMtools writes the value of the indicated column
onto the target property of the matched node (or creates the
property if absent). Supported type values mirror the kinds of
data the EM language recognises (identifier, node_type,
epoch, qualia, document_link, …); the exact list
depends on the importer in use and is documented alongside the
operator in API Reference.
Todo
Ship a canonical emdb_mapping.template.json next to the
addon and reference it here once finalised. Until then the
shape above is the reference; live working examples can be
inspected in the Basilica Iulia dataset used by
Bulk Import via the Excel Mapping Tool.
Starting from version 1.5, EMtools allows to link external resource folders containing photos, 3D scans, documents and other media files to your Extended Matrix project.
This feature is particularly useful when working with large image collections that need to be referenced and previewed directly from within Blender.
Once a resource folder is configured, EMtools can automatically generate thumbnail previews of all images in that folder.
The thumbnail system creates a local cache that speeds up image browsing and reduces memory usage.
How it works:
Thumbnails are stored in a folder named EM_thumbs/ next to your .blend file
Each resource folder gets its own subfolder (e.g., Resources_abc12345)
The system remembers which images have been processed to avoid duplicates
If you sync your project via cloud storage, thumbnails are automatically shared across computers
In the Auxiliary Files panel, locate the text Thumbnailsfortheresourcefolder?Clickbelow.
Click the (Re)generatethumbnails button
EMtools will scan all images in the resource folder (including subfolders) and create previews
Progress information is displayed in the Blender console
The line Thumbs:Resources_xxxxxxxx shows the name of the cache folder that was created
Note
Supported image formats: JPG, PNG, BMP, TIFF, PDF (first page)
The generation process only creates thumbnails for new or modified images.
If you click (Re)generate again, existing thumbnails are skipped automatically.
A third section, the Utils sub-panel (labelled Utilities & Settings
in older builds), is included within the EM Data Tree panel.
Here, users can: convert an EM made with an old version of the formalism,
create the default collections, rename Proxies and enable Experimental
Features.
In the first case (Convert1.x->1.5 button) EMtools will normalise
older GraphML files authored with the 1.x palette to the 1.5 visual
conventions — see Convert 1.x->1.5 below for details.
Within this section, EMtools includes also a button, CreateStandardCollections, that allows to automatically create the set of default collections (Proxy, RM, CAMS) related to a reconstruction process with Extended Matrix.
By pressing ManageProxies'Prefixes button, EMtools will automatically rename Proxies according to the GraphML ID (NB: this step is mandatory to mutually connect GraphML and Proxies. User must select geometries before applying the tool).
By pressing the EnableExperimentalFeatures button, a set of Experimental Features will be activated within the sections of the EM Data Tree panel (Fig. 6).
The Convert1.x->1.5 button in the EM Data Tree → Utils
sub-panel migrates older Extended Matrix GraphML files (authored
with the 1.x generation of the yEd palette) to the 1.5 visual
conventions used by the current importer and tooling.
The button drives the graphml.convert_borders operator, which
reads a .graphml file and rewrites its node visual attributes
in-place on a new file:
Sets the border width to 4.0 for the EM target shapes
(rectangle, hexagon, ellipse, octagon, parallelogram).
Applies the 1.5 canonical border colours based on shape type
and background:
rectangle → #9B3333 (US / negative units)
hexagon → #31792D (USV)
ellipse → #31792D (USV variants)
parallelogram → #248FE7 (documents / extractors)
octagon → #D8BD30 (Special Find) when on a light background,
#B19F61 (Virtual Special Find) when on a black background.
The result is written next to the original file with a
_converted.graphml suffix; the source file is left untouched.
Select the legacy .graphml file and confirm. EMtools
produces <name>_converted.graphml in the same folder and
reports the output path in the Blender status bar.
Load the converted file with AddGraphML as you would any
other graph (see the Loading DosCo documents into the graph
note above for the load workflow).
The operator is a visual / palette normaliser, not a full
datamodel migration. In particular:
It does not invent or upgrade paradata. If the older graph lacked
family / is_series attributes on extractors and combiners,
the converted file reflects the same absence.
It does not rename relation edges whose semantics changed between
releases (e.g. is_after direction canonicalisation introduced
in v1.5.3). Such edges are preserved as-is and may surface as
importer warnings.
It does not re-link external documents. DosCo references in the
original are preserved as identifiers; ensure the corresponding
files are reachable in your DosCo folder.
For projects authored before EM 1.0 (pre-formalisation,
free-form yEd), conversion is not reliable: the original is best
used as a visual reference for manually rebuilding the graph in
the current palette.
For the missing pieces above, the importer side picks up some of
the slack: s3dgraphy.importer.import_graphml is forgiving on
older label conventions and re-maps known legacy types on the fly
during import, and the post-import passes in s3dgraphy.transforms
(hoist_propagative_metadata, prune_redundant_propagative_edges,
compact_propagative_metadata) can be used to normalise paradata
attribution programmatically.
A single, end-to-end s3dgraphy.utils.convert_legacy_em_graph
wrapper that combines the palette-normalisation step performed by
this button with the in-memory cleanup transforms is on the
s3dgraphy roadmap. Until it lands, the procedure above (button →
load → optional transforms → re-export) is the recommended path.
The anchor for this section (convert-legacy-em-graph) is
stable and will continue to point here when the wrapper is
published.
Fig. 6 Experimental Features enabled (red rectangles with numbers 1-3)
Note
As highlighted in the red warning, this set of features is experimental and it should not be used within the regular documentation process of the EM (Fig. 6).
Here a brief presentation of the Experimental Features, the numebers on the list refer to the numbers specified in Fig. 7:
On the upper part of the panel the Switchto3DGIS button allows to instantly switch from the EMmode to a 3DGISmode where users can link an external database to EMtools (Fig. 7). The activation of the 3DGISmode consents to connect an External database to the 3D environment of Blender via EMtools. User have three different type of external databases (Generic Excel, PyArchInit, EMdb Excel) to choose from. By pressing the corresponding button a diverse set of options will appear. After setting all the required information the external db will be import within EMtools.
Within the DosCoFolder section (Fig. 6) the Moreoption menu appears, this new part of the add-on permits to populate Extractors, documents and Combiners using DosCo files.
In the Utilities&Settings (Fig. 6) the activation of the EnableExperimentalFeatures button activates the ExperimentalTools section with RebuildGraphIndices, BenchmarkPropertyFunctions, and the collapsible Create a GraphML wizard.
Create a GraphML: A 3-step panel-based wizard for generating Extended Matrix GraphML files from Excel data — either filled manually using downloadable templates or produced by AI-assisted extraction from archaeological reports. The wizard works entirely in memory until export:
Step 1 — Convert Stratigraphy: Loads stratigraphy.xlsx (24-column template) and creates an s3dgraphy graph in memory.
Step 2 — Enrich with Paradata (optional): Loads em_paradata.xlsx and adds per-property provenance chains (PropertyNode → ExtractorNode → DocumentNode) to matching nodes.
Step 3 — Export GraphML: Saves the graph to a .graphml file. Import this file via File > Import EM file to populate the Blender scene.
The panel also provides template download buttons and an AI Extraction Prompt section with a language selector and a one-click Copy AI Prompt to Clipboard button.
Warning: This feature is experimental. Always verify the generated GraphML before using it in production.
When a GraphML file is imported, EMtools validates its structure and content. Any issues are surfaced in a collapsible GraphML Warning box below the graph entry.
Common warnings:
Missing site ID — the swimlane header does not contain the mandatory ID: field (for example GreatTemple[ID:GT16]). Fix this in yEd before reloading.
Placeholder epoch dates — an epoch still contains the xx placeholder in its start/end fields. Replace with real dates.
Structural issues — malformed nodes, dangling edges, unknown node types reported by the importer. Each message indicates the offending node ID.
The warnings are read-only: they describe what the importer detected. To clear them, fix the .graphml file in yEd and reload with the FileRefresh button in the EM Data Tree list. The DataFunnelguide button links to the Extended Matrix manual section with authoring best-practices.
When an XLSX stratigraphy file is merged into an already-loaded graph (for example, to incrementally add units discovered in a later season), the EM Setup panel performs a diff and surfaces conflicts — nodes where the incoming data and the existing graph disagree.
The Conflict Resolution panel appears in the EM tab while a merge is active. For each conflict the user can choose:
Keep Existing — ignore the incoming value for this node.
Use Incoming — overwrite the existing value.
Per-Field Choice — accept some fields from the existing graph and others from the incoming XLSX, useful when only a subset of attributes has changed.
Epoch compatibility is verified before merge: if the XLSX references epochs that do not exist in the graph (or have incompatible ranges), a blocking Epoch Report is shown at the top of the panel. Fix the XLSX (or adjust graph epochs) and retry.
ApplyMerge commits the choices into the graph; CancelMerge discards them.