You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Using ImGui to control Scene variables (safely with multithreading)
User input and world navigation
Main Features
Projects are modular and can include each other as dependencies in a tree structure
Child projects can be opened and compiled as standalone projects
Cross-platform: Windows, Linux, Emscripten
Designed for heavy per‑frame computations (e.g. Mandelbrot zoom)
C++ NanoVG wrapper with integrated 128-bit float support (f128 class)
If you have prior experience with HTML Canvas drawing, this should feel second-nature to you
FFmpeg video recording without blocking the UI (Desktop only)
WebP snapshots / animations (all platforms).
Design Principles
Organization
Using CMake, you can create an empty bitloop project (e.g. "Science"), and include several subprojects ("Physics", "Biology") where you can create further subprojects
You can build any subtree of projects (e.g. just "Biology") in to a single final executable
All project data (images, audio, etc) are bundled into the final executable automatically
Library Management
All bitloop projects use vcpkg as a package manager (vcpkg is fetched automatically for the current workspace)
Shared binaries - all projects in a workspace will share the same vcpkg instance and binaries to prevent unnecessary rebuilds
To create a workspace, simply add a ".bitloop-workspace" file in a project directory.
For the root workspace folder, add: "root=TRUE"
For child workspaces, add: "root=FALSE"
vcpkg will be automatically cloned in to the highest level folder containing a ".bitloop-workspace" file (but not above the root workspace)
Layout
By default, projects contain a simple built-in viewport and sidebar for custom ImGui controls, along with a handy collection of tools/libraries.
Development progress
Building
Windows
Linux
Modular nested projects
✔️
✔️
Standalone projects (with child projects as dependencies)