Official and community plugins for Doppio — the editor for the Caffeine Engine.
Doppio is intentionally lean: terrain tools, post-processing UI, procedural streaming, Git integration, and other feature panels ship as dynamic libraries (.so / .dll) loaded at runtime from a plugins/ folder next to the editor binary.
This repository is the public home for:
- Plugin catalog — what each plugin does and how to install it
- Starter template — minimal plugin you can copy and extend
- CMake helpers — build against the Caffeine Plugin SDK
- Community contributions — share your own editor extensions
You need a working Caffeine Engine checkout with Doppio built:
git clone https://github.com/caffeine-engine/caffeine.git
cd caffeine && mkdir build && cd build
cmake .. && cmake --build . --target doppiogit clone https://github.com/caffeine-engine/doppio-plugins.git
cd doppio-plugins
cmake -B build \
-DCAFFEINE_ROOT=/path/to/caffeine \
-DIMGUI_DIR=/path/to/caffeine/build/_deps/imgui-src
cmake --build buildCopy the built .so / .dll into Doppio's plugins directory:
cp build/plugins/*.so /path/to/caffeine/build/doppio/plugins/Restart Doppio (or use Window → Plugins to enable the plugin).
doppio-plugins/
├── README.md ← you are here
├── CONTRIBUTING.md ← how to submit a plugin
├── cmake/
│ └── DoppioPlugin.cmake ← shared CMake helper
├── docs/
│ ├── getting-started.md
│ ├── writing-a-plugin.md
│ ├── installing-plugins.md
│ └── service-registry.md
├── templates/
│ └── hello-plugin/ ← copy this to start a new plugin
└── plugins/
├── README.md ← catalog index
├── hello-plugin/
├── terrain-generator/
├── procedural-tools/
├── post-processing/
└── git/
| Plugin | Binary | Description |
|---|---|---|
| Hello Plugin | hello_plugin |
Minimal SDK example |
| Terrain Generator | terrain_plugin |
Ultra-realistic procedural terrain (Node.js pipeline) |
| Procedural Tools | procedural_tools_plugin |
Modular streaming + Lua directors |
| Post Processing | post_processing_plugin |
Post-process stack UI for cameras |
| Git | git_plugin |
Optional Git workflow panel |
Official plugin source code currently lives in the Caffeine monorepo under apps/plugins/. This repo documents them and hosts community plugins; sources will migrate here over time.
Build all official plugins from the Caffeine tree:
cmake --build /path/to/caffeine/build --target \
hello_plugin terrain_plugin procedural_tools_plugin \
post_processing_plugin git_plugin- Copy
templates/hello-plugin/toplugins/your-plugin/ - Implement
Caffeine::Editor::IPluginand exportCreatePlugin/DestroyPlugin - Register panels, menus, component drawers, or services via
PluginHostApi - Build with
doppio_add_plugin()fromcmake/DoppioPlugin.cmake
See docs/writing-a-plugin.md for the full guide.
The public C ABI is defined in the Caffeine tree:
include/caffeine/plugin/PluginAPI.hpp— host callbacks,IPlugininterfaceinclude/caffeine/plugin/PluginServices.hpp— well-known service names and request structs
Upstream documentation: Caffeine Plugin SDK
| Requirement | Notes |
|---|---|
| Caffeine Engine | Matching branch / tag recommended |
| C++20 compiler | GCC 11+, Clang 14+, MSVC 2022 |
| CMake 3.20+ | |
| ImGui | Fetched by Caffeine build; pass IMGUI_DIR when building standalone |
MPL-2.0 — same as Caffeine Engine. Plugin authors keep copyright on their contributions; see CONTRIBUTING.md.