SpectraMesh is a Vulkan-powered rendering engine with an expanding suite of analytical tools tailored for Digital Humanities and cultural heritage research.
Rendering Engine
SpectraMesh uses a modern Vulkan render engine with full interactive control of camera, lighting, and loaded meshes.
It features a Physically Based Rendering (PBR) pipeline with full support for metallic, roughness, normal, occlusion, emissive, and specular maps. Users can interactively control cameras, lighting, and loaded meshes, achieving realistic material appearances under dynamic lights and environment-based illumination.
Advanced PBR capabilities include normal mapping, HDRI environment lighting, and configurable multiple light sources, delivering physically accurate shading, reflections, and immersive visual fidelity.
Analysis Modules – Current Implementation Status
Alignment (core complete, ongoing optimization):
- Manual Alignment: Align meshes manually using user input.
- Predefined Viewpoints: Use fixed viewpoints for mesh alignment.
- Mesh-to-Mesh Alignment: Align two meshes using manual or algorithmic refinement.
- Automated Descriptor-based Methods: Automatically refine alignments based on mesh descriptors.
Meshing (partial):
- Smoothing: Apply smoothing algorithms to reduce mesh noise.
- Simplification: Reduce the complexity of meshes while preserving essential features.
- Hole Filling: Automatically fill holes in incomplete meshes.
- Poisson Meshing: Development of advanced meshing techniques for better surface representation (in progress).
- BPA Meshing: A method under development for mesh reconstruction.
Repair (partial):
- Non-manifold Repair: Fix invalid geometries in meshes (e.g., disconnected edges).
- Texture Repair (Planned): Future support for repairing texture errors in meshes.
Measure (core complete):
- Linear Distance: Measure straight-line distances between two points on a mesh.
- Geodesic Distance: Measure the shortest path over the surface of a mesh (useful for non-linear surfaces).
- Volume Measurement: Calculate the volume of entire meshes or specific regions.
- Surface Area Measurement: Calculate the total surface area of meshes or regions.
- Sectional Analysis: Perform cross-sectional measurements within a mesh for detailed analysis.
Compare (core complete):
- Distance Maps: Compare meshes based on distance differences across the surface.
- Density Comparisons: Analyze local densities between meshes (e.g., Hausdorff and Chamfer distances).
- Topology Comparison: Compare the topological structure of meshes for similarities or differences.
- Volume-based Comparisons: Compare meshes based on volume calculations.
- Boolean Operations (in development): Future capability to combine meshes using logical operations (union, intersection, etc.).
Analysis (core complete):
- Heightmaps: Generate heightmaps to analyze surface elevation variations.
- Slopemaps: Generate maps that show the steepness or angle of surfaces.
- Densitymaps: Create maps displaying the material density distribution across a mesh.
- Curvature Analysis: Analyze the curvature of a mesh’s surface to identify flat, concave, or convex areas.
Detection (core complete):
- Non-manifold Detection: Detect non-manifold structures (invalid geometric elements like holes or disconnected vertices).
- Edge Detection: Identify edges within a mesh that represent boundaries or significant features.
- Surface Feature Detection: Identify and highlight unique surface features (e.g., texture, scratches, wear).
- Primitive Shape Detection: Detect basic geometric shapes like spheres, cylinders, or cubes within a mesh.
Segmentation (partial):
- Feature-based Segmentation: Segment meshes based on features like edges, curves, or material properties.
- Curvature-based Segmentation: Segment regions based on surface curvature (useful for identifying different structural components).
- Density-based Segmentation: Segment regions of meshes based on density variations.
- Height and Slope-based Segmentation: Segment regions based on height and slope characteristics.
- Material-based Segmentation: Segment based on different materials or textures within a mesh.
Current Research-Driven Development Focus
• Tools for generating construction plans for experimental archaeology
(with Greifenberger Institut für Musikinstrumentenkunde)
• Analysis and detection tools for toolmarks and object damage
(with Greifenberger Institut für Musikinstrumentenkunde)
• Scientific mesh-to-mesh comparison methods for deformation studies
(with Greifenberger Institut für Musikinstrumentenkunde)
• Feature detection based on (photo)texture properties
(planned with scientists of the Institute of Classical Archaeology, Heidelberg, 2026)
• Physics simulation of liquid and curd flow in prehistoric cheese strainers
(planned with PhD-students LMU Munich, 2026)
• Semi-automated animation tools and templates for museum and university visualization
(planned for University of Trier & Studio Nowhere Mannheim, 2026)
Hardware-Driven Developments
• Prototype development of a miniature endoscopic 3D stereo-scanning system
(with Greifenberger Institut für Musikinstrumentenkunde)
We are designing a compact endoscopic stereo-camera system supported by motion tracking to capture point clouds inside narrow or inaccessible object regions (e.g., the internal structures of historical instruments). Hardware evaluation is underway; software integration will begin shortly.
• Integrated micro- to nanometer feature scanning workflows
(planned with scientists of the Institute of Classical Archaeology, Heidelberg, 2026)
Development of a combined hardware–software workflow for digitizing extremely fine surface details (micro- to nanometer scale) on very small objects or selected areas of larger objects. The workflow integrates data from multiple sensors into a unified high-resolution mesh.
Additional Modules in Concept Phase
• Specialized analysis tools (e.g., typology grouping, construction-plan generation)
• Scientific annotation tool and database
Supported File Formats
Meshes: s3msh (proprietary), OBJ, PLY, STL, GLM
Images: JPG, PNG, BMP, TGA, HDR, PNM
Note: PSD and GIF are only partially supported (PSD: flattened layers only, GIF: first frame only).