Getting Started
This guide walks you through getting the Plume3D binaries, installing the Blender addon (optional for your first app), and writing a minimal runnable app.
1. Get the runtime
Section titled “1. Get the runtime”Plume3D is in early access — email hello@wyldmagic.gg to request the engine binary for your platform. See the Get Plume3D page for details on what to include in your request.
Once you have the archive:
- Extract it. You should see the
plume3dexecutable (orplume3d.exeon Windows) and any required DLLs/libs. - (Optional) Add the folder containing
plume3dto your PATH so you can run it from anywhere.
Run a game: From a terminal, go to a folder that contains a game.toml (your app root) and run:
./plume3d .Or pass the path to a project folder or archive:
./plume3d /path/to/my_game./plume3d /path/to/my_game.zipThe engine mounts that path and looks for game.toml and main.wren (or the script configured in game.toml).
2. Get the Blender addon
Section titled “2. Get the Blender addon”The Blender addon lets you attach Wren scripts and config to objects and collections in a .blend file. You can skip this for your first app and add it when you start using Blender-authored scenes.
Prerequisite: Install Blender 5.0 from the Blender release index. The addon is built for Blender 5.0.
Email hello@wyldmagic.gg to request the addon zip, then install it:
- In Blender: Edit → Preferences → Add-ons → Install…
- Select plume3d_wren.py (or the
plume3d_blender_5_0.zipdirectly). - Enable the addon (search for “Plume3D” in the addon list).
- Tag and Collision layer names are defined in your app’s
game.toml[Physics] section; set Game Config Path in the addon (on the root collection) to thatgame.tomlso the addon UI shows the same names. See Configuration (game.toml).
After configuring Wren Script Config on objects/collections, save the .blend (File → Save) so the engine can read class names and Node Ids.
For full addon usage (Config Path, Class Path, Class Name, Node Id, pipeline, and engine behavior), see the Blender Addon guide.
3. Write your first app
Section titled “3. Write your first app”A Plume3D app is a folder (or archive) that contains at least:
- game.toml — App name and window settings.
- main.wren — Entry script that defines a
Gameclass withinit(),update(dt), anddraw().
Step 1: Create a folder
Section titled “Step 1: Create a folder”Create a folder for your game, e.g. my_game/.
Step 2: Add game.toml
Section titled “Step 2: Add game.toml”Create game.toml in that folder:
[Game]name = "My Game"version = "0.0.1"description = "My first Plume3D app"
[Window]width = 800height = 600resizable = trueStep 3: Add main.wren
Section titled “Step 3: Add main.wren”Create main.wren with a Game class. The engine instantiates Game once and calls init() at startup, then update(dt) and draw() every frame. This example uses the built-in Gui so you don’t need any shaders or assets:
import "engine" for Gui, Window, Logger
class Game { construct new() {}
init() { Logger.info("My Game started!") }
update(dt) { if (Gui.beginWindow("Hello", 20, 20, 280, 120)) { Gui.layoutRowDynamic(22, 1) Gui.label("Welcome to Plume3D") Gui.label("Window: %(Window.getWidth()) x %(Window.getHeight())") if (Gui.buttonLabel("Click me")) { Logger.info("Button clicked") } Gui.endWindow() } }
draw() {}
quit() {}}Step 4: Run it
Section titled “Step 4: Run it”From a terminal, in your app folder:
/path/to/plume3d .Or from elsewhere:
/path/to/plume3d /path/to/my_gameYou should see a window with a small GUI panel. Resize the window; the label updates. Click the button and check the terminal for the log line.
What’s next
Section titled “What’s next”- Drawing graphics — You’ll need a shader (e.g. compile a
.slangfile to.spv) and use Graphics and Mesh. See the Plume Triangle example. - More GUI — Gui API and examples like GUI Overview and GUI Input.
- Audio — Audio and Source; see Audio Basic.
- Full API — API Reference for Engine, Input, Window, Scene, Config, Resource, and more.