Make Scrimmage BEAUTIFUL: Replace VTK with Ogre3D
One of the primary complaints with Scrimmage today is that it's ugly. The VTK GUI display looks straight out of the early 2000's. Why do a bunch of hard simulation work and then have your end product/demonstration look dated?
The Solution
Ogre3D 14.x — a real-time rendering engine with modern graphics, one stable API, and an active community.
See their showcase builds here. Salivate over what Scrimmage could look like.
Why Ogre3D?
It's a C++ rendering library, not a full game engine, so it embeds cleanly without taking over the architecture. Gazebo has used Ogre as its rendering backend for years — proven in robotics simulation. MIT licensed, apt-installable on Ubuntu, and its scene graph maps naturally to how Scrimmage already thinks about entities.
Why This Will Work
The existing Interface abstraction means the viewer just consumes protobuf messages — zero changes needed on the simulation side. The algorithmic work (camera math, coordinate transforms, shape dispatch) stays identical; just swapping render calls.
VTK's verbose Source → Mapper → Actor → Renderer pipeline becomes Ogre's direct Entity → SceneNode. Same features, estimated 500 fewer lines of code.
Make Scrimmage BEAUTIFUL: Replace VTK with Ogre3D
One of the primary complaints with Scrimmage today is that it's ugly. The VTK GUI display looks straight out of the early 2000's. Why do a bunch of hard simulation work and then have your end product/demonstration look dated?
The Solution
Ogre3D 14.x — a real-time rendering engine with modern graphics, one stable API, and an active community.
See their showcase builds here. Salivate over what Scrimmage could look like.
Why Ogre3D?
It's a C++ rendering library, not a full game engine, so it embeds cleanly without taking over the architecture. Gazebo has used Ogre as its rendering backend for years — proven in robotics simulation. MIT licensed, apt-installable on Ubuntu, and its scene graph maps naturally to how Scrimmage already thinks about entities.
Why This Will Work
The existing
Interfaceabstraction means the viewer just consumes protobuf messages — zero changes needed on the simulation side. The algorithmic work (camera math, coordinate transforms, shape dispatch) stays identical; just swapping render calls.VTK's verbose
Source → Mapper → Actor → Rendererpipeline becomes Ogre's directEntity → SceneNode. Same features, estimated 500 fewer lines of code.