About VertexNova
VertexNova Engine (VNE) is a modern, multi-platform rendering and visualization project focused on clarity, portability, and steady evolution.
What and Why
VertexNova provides a clean C++ backbone with strict ownership and predictable lifetimes, a multi-backend rendering layer (xgl) for OpenGL Desktop, OpenGL ES/Web, Metal, and Vulkan (WIP), along with platform utilities (xwin) and visualization helpers (xviz).
Key Features
Multi-Backend Rendering
VertexNova's xgl layer provides a unified API across multiple graphics backends:
- OpenGL Desktop - Full OpenGL support for desktop platforms
- OpenGL ES / WebGL - Mobile and web rendering
- Metal - Native macOS and iOS rendering
- Vulkan - Modern low-level API (Work in Progress)
Cross-Platform Support
- macOS - Native Metal and OpenGL support
- iOS - Metal and OpenGL ES
- Windows - OpenGL and Vulkan (WIP)
- Linux - OpenGL and Vulkan (WIP)
- Web - WebGL via Emscripten
Modern C++ Design
- C++17+ with modern best practices
- Strict ownership semantics
- Predictable lifetimes
- Thin abstractions over platform APIs
Design Principles
- Modern C++ with clarity over cleverness
- Thin abstractions and clear layering
- Multi-backend design via unified API
- Build to learn first; scale responsibly later
Current Status
- Simple demos run on macOS, iOS, OpenGL desktop, and Web (Emscripten/WebGL)
- Vulkan backend is in progress
- More demos and tests are being added to cover concepts thoroughly
Roadmap
Short-term
- Strengthen
xglmulti-backend: OpenGL ES/Web, Metal; first Vulkan demo - Expand demo coverage and automated tests
- Keep tightening platform build pipelines (macOS, iOS, Web)
Mid-term
- Add more sample scenes (materials, textures, shadows, post-processing)
- Improve resource management, validation layers, and debug tooling
- Simple content pipeline and live-reload where possible
Long-term
- Animation system, basic physics playground, scene graph/editor
- Deeper Vulkan feature set, cross-platform parity
- Performance profiling and scalability work
Motivation
This project was started as a learning journey in computer graphics and engine architecture. The goal is to build a clean, modern codebase that can be maintained long-term while learning from excellent references like The Cherno's engine series, libigl, and LLGL.
Quality and Testing
- Small demos to prove each concept in isolation
- Tests added as features land to avoid regressions
- CI runs across platforms where possible