An Unreal Engine plugin for visualizing hierarchical data center infrastructure through JSON configurations (See JSON configuration examples). Part of the ExaDigiT project for creating digital twins of exascale computing systems.
![]() |
|---|
| Visualizing datacenters using ExaDigiT: DatacenterExplorer |
![]() |
|---|
| Dynamically update telemetry using the DataPipeline plugin |
- Unreal Engine 5.3+
- UE DataPipeline Plugin
- Blueprint-Friendly: All primary functionality is accessible via Blueprints.
- JSON-based Hierarchies: Parse nested JSON files representing data center components with template caching
- Dynamic Actor Spawning: Strategy-based spawning system with command queuing and frame-safe execution
- Flexible Visualization: Material strategies, node filtering, and conditional styling based on properties
- Performance Optimized: Adaptive frame rate management, priority queuing, and async loading support
Place in Plugins/ folder (or git submodule at that location) and enable in your project settings.
// Add AHierarchySystem actor to your level, then configure:
Reader->BaseFolder = "/Game/NonAssetInclude/FOLDERNAME";
Reader->RootNodeFilename = "cluster.json";
// Parse hierarchy
UHierarchyNode* RootNode;
Reader->ParseHierarchyAsync(RootNode);
// Spawn actors using a strategy
USpawnTraversalStrategy* Strategy = NewObject<USpawnTraversalStrategy>();
Strategy->TraversalMode = ETreeTraversalMode::BreadthFirst;
Manager->ExecuteStrategy(RootNode, Strategy);{
"self": {
"dimensions": {"width": 1000, "height": 2000, "depth": 800},
"mesh": "/Game/Meshes/ServerRack",
},
"children": [
{
"name": "node-1",
"type": "server",
"position": {"x": 0, "y": 0, "z": 100},
"reference": "server.json",
"visible": true
}
]
}- Parse →
HierarchyReaderloads JSON files intoHierarchyNodetree - Strategy →
HierarchyStrategistselects processing strategy (spawn/visual/destroy) - Commands → Strategy generates commands for the
HierarchyManager - Execute → Manager processes command queue with adaptive frame management
- Visualize → Actors spawn with materials/properties from node data
| Component | Purpose |
|---|---|
| HierarchyReader | JSON parsing with template caching |
| HierarchyManager | Command execution and actor registry |
| HierarchyStrategist | Strategy orchestration |
| Processing Strategies | Spawn, Visual, Destroy operations |
| Node Filters | Property-based filtering with regex support |
Filtering Nodes - See code on how to use or the demo actors in Unreal Engine.
// Filter by property
FNodeFilterConfig Config;
Config.Rules.Add(FNodeFilterRule("name", "*cpu*"));
Config.Rules.Add(FNodeFilterRule("type", "server"));
auto HotServers = UHierarchyNodeFilters::FilterNodes(Nodes, Config);// Conditional coloring based on temperature
UVisualTraversalMaterialStrategy* Visual = NewObject<UVisualTraversalMaterialStrategy>();
FVisualFilterRule Rule;
Rule.FilterConfig.Rules.Add(FNodeFilterRule("name", "*gpu*"));
Rule.MaterialParameters.VectorParameters.Add("Color", FLinearColor::Red);
Visual->VisualFilterRules.Add(Rule);- Data center infrastructure visualization
- HPC system monitoring and digital twins
- Interactive system architecture exploration
- Real-time component status visualization
If you use ExaDigiT and/or AutoCSM in your research, please cite our work:
Datacenter Explorer Plugin:
@software{DatacenterExplorer2025,
author = {Greenwood, Scott and Maiterth, Matthias and Bouknight, Sedrick and Dykes, Tim},
title = {Datacenter Explorer},
year = {2025},
month = {November},
institution = {Oak Ridge National Laboratory (ORNL)},
doi = {10.11578/dc.20251112.2},
url = {https://code.ornl.gov/exadigit/DatacenterExplorer}
}
ExaDigiT:
@inproceedings{exadigit,
title={ExaDigiT: A Framework for Digital Twins of Liquid-cooled Supercomputers Demonstrating Comprehensive Modeling of Workloads, Power, and Cooling},
author={Brewer, W. and Dash, S. and Maiterth, S. and Greenwood, S. and Shin, W. and Grant, D. and others},
booktitle={SC24: International Conference for High Performance Computing, Networking, Storage and Analysis},
pages={1--18},
year={2024},
organization={IEEE}
}
ExaDigiT Visualization:
@inproceedings{exadigitUE5,
author={Maiterth, Matthias and Greenwood, Scott and Brewer, Wes and De Wet, Dane and Kumar, Vineet and Hines, Jesse and Bouknight, Sedrick and Wang, Zhe and Dykes, Tim and Wang, Feiyi},
booktitle={2024 IEEE Visualization and Visual Analytics (VIS)}, title={Visualizing an Exascale Data Center Digital Twin: Considerations, Challenges and Opportunities}, year={2024},
pages={21-25},
addreess={St. Pete Beach, FL},
publisher={IEEE},
doi={10.1109/VIS55277.2024.00012}
}
Many thanks to the contributors of ExaDigiT/AutoCSM.
The full list of contributors and organizations involved are found in CONTRIBUTORS.
This project is distributed under the terms of both the MIT license and the Apache License (Version 2.0).
Users may choose either license, at their discretion.
All new contributions must be made under both the MIT and Apache-2.0 licenses.
See LICENSE-MIT, LICENSE-APACHE, and COPYRIGHT for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)

