Getting Started
This guide walks you through downloading the Plume3D binaries, installing the Blender addon (optional for your first app), and writing a minimal runnable app.
1. Download the runtime
Section titled “1. Download the runtime”- Go to the Downloads page.
- Download the archive for your platform (e.g. plume3d-macos.zip, plume3d-win64.zip, plume3d-linux.zip).
- Extract the archive. 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. Download the Blender addon
Section titled “2. Download 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.
- Go to the Downloads page.
- Download the archive for your platform (e.g. plume3d_blender_5.0.zip).
- Extract the archive. You should see the
__init__.pyand theplume3d_wren.py. - In Blender: Edit → Preferences → Add-ons → Install…
- Select plume3d_wren.py (or a zip of the addon folder containing
__init__.pyandplume3d_wren.py). - 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.