Repository navigation
Releases: rhea-engine/rhea
Release list
Rhea v0.2.0
Rhea v0.2.0
Rhea v0.2.0 adds a desktop file browser and detailed loading diagnostics to Ceto,
along with a standalone Windows x64 ZIP packaging workflow. It also improves
resource references, asset import, GUI layout, and OpenGL rendering.
Rhea remains experimental. This release changes public C++ APIs; source
compatibility with v0.1.x is not guaranteed. An editor is not included.
Ceto scene viewer
- Start Ceto without a command-line asset directory. Engine and viewer resources
are located relative to the executable. - Browse local files and directories, Windows drives, available realms, and
recent worlds. The Samples entry exposes examples shipped with the package. - Open worlds and scenes through the browser. Failed opens display an error
message or a list of detailed diagnostics, and the browser remains available
for another attempt. - Package Ceto, runtime libraries, engine resources, the Courtyard example, and
license notices in a Windows x64 ZIP. Extract the complete archive before
startingCeto.exe, then select Samples > Courtyard > world.scene.
See Standalone Ceto release build for the vcpkg
Release preset and ceto-package target. The Courtyard source directory is an
explicit packaging input and is not included in the engine source checkout.
Resource loading and diagnostics
- Added structured errors with codes, resource identifiers, diagnostic context,
and underlying causes. Error reports collect diagnostics across resource
loading, scene instantiation, world opening, and scene transitions. - Added resource contexts and registered, typed resource-reference properties.
References retain their base paths during instantiation, including dynamic
references and component overrides. - Added base-relative Orion address resolution and a filesystem realm for
direct local file access. Local realm mappings can be replaced or cleared. - Unified dependency loading across asset importers, including external glTF
dependencies and OBJ texture dependencies. - Fixed texture-cache identity, material override isolation, GPU material
identity during updates, repeated mesh finalization, and material copy error
handling.
GUI, rendering, and platform fixes
- Added CSS
gapsupport and improved row/column alignment. Invisible children
no longer participate in these layouts. - Added list item activation and double-click handling,
Unit::findByName, and
safer event bubbling when a handler destroys its target. - Corrected OpenGL clipping, render-target clearing, and standard-shader
lighting; normalized SDL mouse-wheel deltas. - Added executable-directory discovery and Windows drive enumeration.
- Updated BasicApp's resource-list construction and loading callback for the
current resource API. - Corrected the default GUI font resource filename for case-sensitive Linux
filesystems.
Migrating from v0.1.x
- Update
Application::loadResourcecallbacks to receiveErrorReport.
WorldServiceopen, load, transition, and preparation callbacks now also use
ErrorReport, replacing the former service-specific error enums. Check
report.isError()and inspectreport.errorsfor diagnostics. - Construct
ResourceListwith both the application and aResourceContext;
use an empty context for fully qualified resource identifiers. Its completion
callback receivesErrorReportrather than anError*. - Resource-loading and scene APIs provide overloads accepting
ResourceContext.
Preserve the context when resolving relative resource identifiers in custom
loaders or application code. - Custom components with resource properties should use typed
Ref<T>members
and register those properties withComponent::registerResourcePropertyso
dependency discovery, base-path handling, and copying can process them. - Replace
reference.resolve(tree)withtree->resolve(reference). - Rename
Event::isPropagationStoppped()toisPropagationStopped(). Fs::getHomeDir()no longer accepts a creation flag or appends an engine
directory. Select application-specific directories explicitly.
These are migration highlights, not a complete list of changed signatures.
Rebuild dependent applications against the matching engine revision.
Validation
The following results were reported from manual Windows testing:
- The standalone Release build, sample loading, ZIP generation, and local
extract/start/open workflow worked. - The package ran on a Windows system without development tools.
- Scene transitions worked in Novara, an external application using Rhea.
- Opening an invalid file displayed an error, including a detailed list where
applicable. Opening a valid file afterwards worked.
These checks were not recorded against an identified v0.2.0 package hash. Build
the published archive from the intended release revision and retain its version
and validation record.
Linux/WSL validation on October 28, 2026 covered bc68382d with the BasicApp API
and GUI font-path fixes described above, using GCC 11.4.0, CMake 4.4.3, Ninja,
SDL, and WSLg OpenGL 4.1 (Mesa 23.2.1, Intel Iris Xe through D3D12):
- A separate standalone Release build of Ceto, BasicApp, and all three Poseidon
samples succeeded with tests disabled. - Triangle, Cube, and TexturedCube each completed ten OpenGL frames and exited
successfully. - BasicApp loaded its texture and reported its scene ready. Ceto reported its
GUI ready and loaded the Courtyard world and scene. Both ran in bounded
20-second startup checks and were stopped by the test timeout; these checks
do not establish normal shutdown or interactive/visual correctness.
Validation of the complete Courtyard editing walkthrough remains pending.
The complete automated test suite has not been validated for this release.
Native Linux and macOS have not been validated for v0.2.0. The binary packaging
workflow targets Windows x64.
Feedback and license
Report issues through the GitHub issue tracker.
Include the release or commit, operating system, graphics backend, build options,
reproduction steps, and relevant diagnostics.
Rhea is distributed under the MIT License. Third-party components retain their
respective licenses; see LICENSE and
THIRD_PARTY_NOTICES.md.
Release v0.1.1
Rhea v0.1.1
Rhea v0.1.1 fixes build and API compatibility problems in the automated tests and Poseidon renderer samples following the first public release.
It also makes tests opt-in and documents how to build and run them separately.
Rhea remains experimental. APIs, resource formats, and build configuration may change, and backward compatibility is not guaranteed.
An editor is not included.
Changes
Test configuration and Psio tests
- Tests are disabled by default (
RHEA_BUILD_TESTS=OFF). Enable them explicitly with-DRHEA_BUILD_TESTS=ON. - Test targets respect the test option, including when a parent project already provides GoogleTest.
- Corrected GoogleTest/GoogleMock target references and handling of an installed GoogleTest package.
- Fixed outdated include paths in the Psio network tests.
- Updated network test fixtures for the current backend API and corrected ownership errors, including a double deletion in the HTTP stream tests.
- TLS socket tests are built only when OpenSSL support is available.
- Corrected the Hermes test registration.
For an existing build directory, a previously cached RHEA_BUILD_TESTS=ON remains enabled. Pass -DRHEA_BUILD_TESTS=OFF explicitly to change it.
Poseidon renderer samples
The Triangle, Cube, and TexturedCube samples now use the current Psio and Poseidon APIs:
- Updated window creation, input handling, and frame execution.
- Replaced obsolete scene APIs with RenderWorld camera and renderable handles, viewport-owned render contexts, and explicit resource ownership.
- Updated camera positioning, transforms, and keyboard camera controls.
- Added sample shaders for Direct3D 11 and OpenGL, with explicit vertex input layouts and 32-bit mesh indices.
- Added automatic copying of shader assets beside the executables.
- Replaced the missing external image dependency in TexturedCube with a generated checkerboard texture.
- Added
--backend,--frames, and--assetslaunch options.
See the Poseidon sample guide for build instructions, controls, and launch options.
Renderer-only builds
- Added Psio to renderer-only configurations without requiring the Rhea runtime.
- Skipped Fabric registry generation when the Rhea Engine is disabled, removing the Python requirement for renderer-only builds.
- Guarded SDL-specific OpenGL code so Windows builds with SDL disabled can compile.
Validation
- All three Poseidon samples built successfully in Release configuration with MSVC on Windows.
- Each sample completed a five-frame smoke run using Direct3D 11 and OpenGL with the Win32 platform backend, for six successful runs. These checks exercised initialization, shader compilation, frame execution, and normal shutdown.
- The updated samples were additionally reported working in a manual run. No per-sample or per-backend interactive test matrix was recorded.
- Twelve selected Psio URL and HTTP tests passed, along with the SimpleParser and MathRotation test executables.
- The existing engine test configuration continued to configure successfully after the CMake changes.
The complete automated test suite has not been validated. TLS tests and network tests requiring local or external servers were not covered by these checks. Linux and macOS were not validated for the updated Poseidon samples.
Getting started
BasicApp remains the recommended introduction to Rhea. Follow Getting Started for the engine sample, or the Poseidon sample guide to explore the renderer independently.
The README documents the separate test build and execution commands. Some network tests require additional server setup; enabling tests does not imply that every test can run unattended.
Feedback
Report problems through the GitHub issue tracker. Include the release or commit, operating system, compiler, graphics backend, build options, relevant logs, and steps to reproduce the issue.
License
Rhea is distributed under the MIT License. Third-party components retain their respective licenses; see LICENSE and THIRD_PARTY_NOTICES.md.
Initial Release
Rhea v0.1.0
Rhea’s first public release introduces a modular C++17 framework for building immersive 3D applications and virtual worlds.
This release is intended for C++ developers who want to explore the engine, build applications, and provide early feedback. Rhea is experimental: APIs, scene formats, and build configuration may change between releases, and backward compatibility is not guaranteed.
Included in this release
The Rhea runtime and its modular Fabric architecture.
The Poseidon rendering layer, with Direct3D 11 and OpenGL backends.
Integrations for physics and audio.
BasicApp, a small example demonstrating a scene, camera, lighting, and a textured cube.
Ceto, an experimental viewer for user-provided scenes.
An editor is not included.
Tested configurations
The engine and BasicApp have been built and run in these configurations:
| Environment | Graphics backend |
|---|---|
| Windows | Direct3D 11 |
| Windows | OpenGL |
| Linux under WSL | OpenGL |
Native Linux installations and macOS have not been validated for this release.
Getting started
Start with the instructions in docs/GETTING_STARTED.md to build and run BasicApp. BasicApp is the recommended introduction and does not require an editor or an external scene package.
For architecture, dependencies, and integration into your own CMake project, see the repository README.
Ceto scene viewer
Ceto runs existing scenes, but this release does not include a demonstration scene.
When using your own scene assets, launch Ceto with:
Ceto -d <directory>This selects the directory used for the //local/ virtual asset path.
A complete walkthrough for authoring and opening Scene-Files is planned for a subsequent documentation update.
Known limitations
The engine is under active development and is not presented as production-ready.
No editor is included; application development currently uses C++ and asset/configuration files.
Scene authoring documentation is incomplete.
Platform validation is limited to the configurations listed above.
Features beyond the BasicApp workflow may require additional setup and experimentation.
Feedback
Bug reports and feedback are welcome through the repository’s issue tracker. Please include the engine version, operating system, graphics backend, reproduction steps, and relevant logs.
License
Rhea is distributed under the MIT License. Third-party components and assets retain their respective licenses; see LICENSE and THIRD_PARTY_NOTICES.md.