The Problem
Skybolt addresses the challenge of building real-time 3D simulations of dynamic objects—aircraft, ships, spacecraft—within accurate planetary-scale geospatial contexts. Most game engines lack geospatial coordinate systems, while GIS tools lack real-time rendering and entity simulation. Teams needing both (defense simulation, mission planning, visual analytics) typically stitch together multiple incompatible tools.
What This Does
Skybolt is a C++/Python engine with an entity-component system (ECS) for composing dynamic objects from configurable properties. The Assets/Movers/Entities/ directory shows predefined entities (e.g., Frigate.json, Shuttle.json, UH60.json) that combine models, textures, and behavior via JSON definitions. The Assets/Core/Shaders/ folder contains a substantial rendering stack: atmospheric scattering, volumetric clouds (VolumeClouds.frag), ocean (Ocean.frag, BruentonOcean.h), shadows, and tessellated terrain displacement (TessDisplacement.frag).
The Python layer (Assets/Core/Scripts/skyboltutil.py, replaysource.py) provides scripting and data replay capabilities, with a type stub (skybolt.pyi) for IDE support. The Assets/Globe/Entities/ folder defines planetary environments (PlanetEarth.json, PlanetMars.json, Moon.json), while Assets/Globe/Environment/ holds the associated textures and material data.
How To Use It
The README points to an external getting-started guide at prograda.github.io/Skybolt/gettingstarted.html. The repository itself is an assets package, not the full engine source—the actual C++ build system is not present here. The Assets/Core/package.json and Assets/Globe/package.json files are minimal and do not define build scripts.
Setup: Clone the repo. The Python dependencies are listed in Assets/Core/Scripts/requirements.txt—install them with pip install -r Assets/Core/Scripts/requirements.txt. The full engine build requires the main Skybolt source, which is not in this repository.
Configuration: Entity behavior is configured via JSON files in Assets/*/Entities/. The Camera.json and ReplaySource.json files define core system entities. No environment variables are documented in this repo.
Running it: A Scenario Viewer app is mentioned in the README, but no launch script or binary is present in this repository. The replaysource.py script demonstrates the Python plugin pattern for feeding data into the engine.
Real-World Use
A typical scenario: a defense contractor builds a mission-rehearsal tool. They define a custom aircraft entity as a JSON file referencing a model and texture set, then write a Python plugin (replaysource.py pattern) that streams live telemetry into the simulation. The rendering stack handles planetary-scale visuals—atmosphere, ocean, terrain—without custom graphics code.
Code Health & Issues
Low - No lockfile for Python dependencies: Assets/Core/Scripts/requirements.txt declares dependencies without pinned versions, making builds non-reproducible. Low - Incomplete repository: This appears to be an asset/content package, not the full engine. The 43 C/C++ headers are shader code, not application source. The actual engine source, build system, and tests are absent. Low - Minimal CI: The .github/workflows/ contains three workflows (build.yml, onpush.yml, release.yml), but without the engine source, coverage is unclear. Low - Third-party assets: Multiple texture files include README.txt files documenting provenance (e.g., Assets/Globe/Environment/Concrete/), which is good practice. The Assets/Core/Icons/google/ directory includes license text. Low - Single test file: Testing appears minimal, though this may be a content repository where the engine's test suite lives elsewhere.
The Bottom Line
This is the asset and content layer for the Skybolt engine, not the engine itself. The rendering and simulation scope is impressive—photoreal planetary environments with dynamic entities—but you cannot build or run anything from this repository alone. Teams evaluating Skybolt should clone the full engine source and use this repo as the content package. The Mozilla Public License 2.0 is permissive for commercial use, but expect a significant integration effort.