.. _heriverse_export: Heriverse Export ================ The **Heriverse Export** provider lives in the *EM Bridge → Export Manager* panel and produces a complete Heriverse project from the current Blender scene. Heriverse is the 3D-web publishing platform of the Extended Matrix ecosystem: it ingests a folder containing the graph (JSON), the supporting documents (DosCo), the proxies, the Representation Models (RM) and the Reality-Based (RB) geometries, and serves them as an interactive online scene with paradata fully browsable next to the 3D content. This page documents the panel options, the produced project structure, the threaded variant, the publishing workflow, and common troubleshooting. For the tabular dump of the graph (em_data.xlsx, CSV), see :doc:`export_manager`. .. seealso:: - `Heriverse docs `__ — full documentation of the Heriverse publishing platform. - `Publishing a reconstruction via Heriverse `__ — the upload step (creating a Heriverse scene and pushing the exported bundle online). - :doc:`export_manager` — for Tabular export (em_data.xlsx, CSV). Overview -------- A Heriverse export bundles, into a single output folder, every asset a Heriverse scene needs: - the **graph JSON** describing the Extended Matrix (US/USV nodes, epochs, relations, paradata); - the **DosCo** folder with the source documents referenced by the graph; - the **Proxies** — lightweight stand-ins for each stratigraphic unit, organised by epoch; - the **Representation Models (RM)** — the high-quality reconstruction geometries — and their documentation variants (**RM Doc**) and Special Find variants (**RM SF**); - optional **panorama** (``defsky.jpg``) and a **ZIP** archive of the whole bundle for distribution. Only graphs explicitly marked as **Publishable** in the EM Setup panel are included in the export. This is signalled in the UI by an info line right below the project name fields. Prerequisites ------------- Before running an export, please verify that: - every Representation Model and Reality-Based geometry is assigned to the correct **epoch(s)** through an Activity NodeGroup — see the EM manual on `Activity NodeGroups `__ for the underlying concept; - 3D objects live in the appropriate Blender **collection** (``RM`` for Representation Models, ``RB`` for Reality-Based, ``Proxy`` for stratigraphic proxies); - at least one graph is marked as **Publishable** in the EM Setup panel; - the destination folder is writable and the project name does not collide with an existing export (the exporter will overwrite by default). Panel Options ------------- The panel is split into a **basic** area, always visible, and an **Advanced Options** area that toggles open via the ``TRIA`` arrow. Basic ~~~~~ **Export Path** (``scene.heriverse_export_path``) Destination folder where the Heriverse project will be written. Defaults to empty — the user must set it before exporting. **Project Name** (``scene.heriverse_project_name``) Name of the project folder created inside the export path. **Export JSON** (``heriverse_overwrite_json``) Write/overwrite the graph JSON for every Publishable graph. **Export DosCo** (``heriverse_export_dosco``) Copy the DosCo folder (source documents) into the project. **Export Proxies** (``heriverse_export_proxies``) Export the Proxy collection — one proxy per stratigraphic unit. **Export RM** (``heriverse_export_rm``) Export the Representation Models geometry. **Export RM Doc** (``heriverse_export_rmdoc``) Export the RM Documentation variants (paradata-attached models). **Export RM SF** (``heriverse_export_rmsf``) Export the RM Special Find variants. **Create ZIP** (``heriverse_create_zip``) Pack the produced project folder into a ``.zip`` archive next to it, ready for upload. **Add Panorama** (``scene.heriverse_export_panorama``, default ``True``) Copy the default panorama (``defsky.jpg``) into the project. .. note:: If **Export JSON** is enabled while **Export RM** is not, the panel shows a warning: ``Warning: JSON export without RM export!``. The produced JSON will still reference the RM nodes, but the link between RM nodes in the graph and the actual 3D models on disk will be missing. To fix it, enable **Export RM** as well, or disable the JSON re-export when re-running an export that only touches geometry. Advanced ~~~~~~~~ The advanced area gathers GLB compression, texture handling, animation export, paradata-specific options and Cesium tilesets. **Use Draco Compression** (``heriverse_use_draco``) Apply Draco mesh compression to the exported glTF assets. When enabled, exposes: **Compression Level** (``heriverse_draco_level``) Draco compression level. Higher = smaller files but slower decode. **Separate Textures** (``heriverse_separate_textures``) Export textures as separate files instead of embedding them into the glTF. When enabled, exposes a **Texture Compression** block on the scene: **Enable Compression** (``scene.heriverse_enable_compression``, default ``True``) Toggle JPEG re-encoding of textures. **Max Size** (``scene.heriverse_texture_max_res``, default ``4096``, range 512–8192) Maximum edge length of exported textures, in pixels. **Quality** (``scene.heriverse_texture_quality``, default ``80``, range 10–100) JPEG quality. ``100`` is lossless, ``80`` is the recommended default, ``60`` is compressed, ``40`` is heavily compressed. **Use GPU Instancing** (``heriverse_use_gpu_instancing``) Pack repeated meshes as GPU-instanced nodes in the glTF. **Export Animations** (``heriverse_export_animations``) Export Blender animations (armatures, bones, and keyframe data). When enabled, exposes: **All Animations** (``heriverse_export_all_animations``) Export every animation track on the selected armatures. **Frame Range Only** (``heriverse_animation_frame_range``) Restrict the exported animation to the scene frame range. **ParaData Export Options** (visible when **Export RM Doc** is on) **Preserve Transforms for each RMDoc** (``scene.heriverse_preserve_rmdoc_transform``, default ``True``) Save and restore the original position, rotation and scale of each ParaData (RM Doc) object so it is exported in place rather than at the world origin. **Compress Textures** (``scene.heriverse_paradata_texture_compression``, default ``True``) Toggle JPEG re-encoding of ParaData textures. When enabled, exposes: **Max Size** (``scene.heriverse_rmdoc_texture_max_res``, default ``2048``, range 512–8192) Maximum edge length of ParaData textures, in pixels. **Quality** (``scene.heriverse_rmdoc_texture_quality``, default ``60``, range 10–100) JPEG quality for ParaData textures. **Cesium Tileset Options** **Skip Extracted Tilesets** (``heriverse_skip_extracted_tilesets``) When the scene contains a Cesium tileset that has already been extracted, skip re-exporting it. Useful for large RB tilesets that don't change between runs. Running the Export ------------------ When the options are set, press **Export Heriverse Project** at the bottom of the section. The exporter runs the following steps: 1. Validates the scene (collections, publishable flag, export path). 2. For each Publishable graph, writes the corresponding JSON. 3. Copies the DosCo folder, if enabled. 4. Exports the Proxy, RM, RM Doc and RM SF objects as glTF/GLB into the appropriate sub-folders (applying Draco, texture separation and GPU instancing per the advanced options). 5. Optionally copies the default panorama. 6. Optionally zips the result. The resulting folder layout, inside ``//``, mirrors the Heriverse scene contract: a top-level JSON per graph, the ``DosCo/`` folder, the ``proxies/``, ``RM/``, ``RMDoc/`` and ``RMSF/`` sub-folders, plus the optional panorama and ZIP archive. Threaded export ~~~~~~~~~~~~~~~ A threaded variant of the exporter is also available (``export.heriverse_threaded``, defined in ``export_threaded.py``). It performs the same export pipeline in a background thread so the Blender UI remains responsive on large scenes — useful when the project contains many RM/RB objects, heavy textures, or when Draco compression significantly slows down the synchronous path. Behaviour and panel options are identical to the synchronous variant. Publishing ---------- Once the export is complete, the project folder (or its ZIP) is ready to be uploaded to a Heriverse instance. The upload step itself — creating a Heriverse scene from your user dashboard and pushing the exported bundle online — is documented on the Heriverse side: `Publishing a reconstruction via Heriverse `__. Troubleshooting --------------- **Missing linked libraries** The exporter logs a warning when an RM or RB collection links a ``.blend`` library that cannot be resolved at export time. Fix the library path in *File → External Data → Find Missing Files* and re-run the export. **DosCo paths broken** Source documents referenced by the graph but not present in the DosCo folder will be skipped, leaving dangling references in the exported JSON. Verify that the DosCo folder configured for the active graph matches the file system before exporting. **RM/JSON link inconsistencies** If you re-exported the JSON but not the RM (or vice-versa), the Heriverse scene will display nodes without their geometry, or geometry that the graph cannot reach. Enable both **Export JSON** and **Export RM** when in doubt — the panel raises a yellow warning for this exact case. **Animations not visible in Heriverse** Make sure the source object has its own armature and that **Export Animations** is enabled. If only a single take is needed, restrict it via **Frame Range Only**; if every action should be shipped, enable **All Animations**. **Heavy ZIP, slow upload** Lower the texture **Max Size** / **Quality** values in the advanced section and/or enable **Use Draco Compression**. For ParaData (RM Doc), the dedicated ParaData texture knobs are typically more aggressive than the RM ones.