Scene Lab
An open source project by FPL.
 All Classes Namespaces Files Functions Pages
Scene Lab


Scene Lab is a library that allows application developers who use FlatBuffers and CORGI to edit properties of objects in real-time within the target application. For example, a game developer can use Scene Lab to lay out objects in a game world inside their game.


This initial release of Scene Lab was developed for Zooshi and is focused on letting you perform certain core tasks needed for editing a game world:

  • Fly around the game world with mouse and keyboard to look at the current layout.
  • Right-click to enter edit mode, which allows you to:
    • Click on entities to select them and view their properties.
    • Move, rotate, and scale entities in the game world by dragging with the mouse.
    • Edit properties of an entity via a text-based FlatBuffer editor.
    • Duplicate or delete entities in the game world.
  • Save in-game entities to a binary FlatBuffer file that can be loaded back into your game, and optionally to JSON files.

For more information on what you can do with the Scene Lab interface, please read Using Scene Lab.

Platforms and Dependencies.

Scene Lab has been tested on the following platforms:

This library is entirely written in portable C++11 and depends on the following libraries (included in the download / submodules):

  • CORGI (Component Oriented Reusable Game Interface), with the included component library.
  • FlatBuffers for serialization.
  • FlatUI for the user interface, which in turn uses:
  • mathfu for vector math.
  • FPLBase for rendering and input, which in turn uses:
    • SDL as a cross-platform layer.
    • OpenGL (desktop/ES).
    • WebP for image loading.
  • FPLUtil (only for build).
  • Breadboard (required by CORGI's included component library).

Please see the Integration Guide for information on how to take advantage of Scene Lab to edit the game world in your own games.


Download using git or from the releases page.

Important: Scene Lab uses submodules to reference other components it depends upon so download the source using:

git clone --recursive

Feedback and Reporting Bugs