PulsarPulsar

Heads up — Pulsar isn't ready to make games just yet. A beta is expected in Q1–Q2 2027.

Pulsar Engine — 01 / Home

Build without

An open-source game engine written entirely in Rust. Virtual-geometry renderer, ECS core, visual blueprint scripting, voxel terrain, and a crash-isolated editor — aiming to compete at the highest level.

Rust · 100%
Level Editor01/07
Level Editor
live preview

02 / Latest Posts

From the Pulsar blog.

View all posts

03 / Core Technology

A stack chosen deliberately.

Every component exists because it makes the engine better — not because it was trendy.

01

Rust all the way down

The editor, renderer, physics, and plugins are all standard Rust. Your project is a Cargo workspace with an ECS core — no managed runtime, no garbage collector. An optional bytecode VM for visual scripts calls into Rust-backed dynamic libraries, giving you rapid iteration without sacrificing native performance.

Cargo workspace
02

Helio — GPU-driven renderer

Helio is Pulsar's custom wgpu renderer built from scratch. A GPU-driven pipeline with compute-shader culling and virtual geometry keeps CPU cost nearly flat as scene size grows — hundreds of millions of source triangles stream through at interactive rates. Zero-copy texture sharing keeps pixel data in VRAM through the full compositor stack.

wgpu · Vulkan · DX12 · Metal
03

Rapier3D physics

Pure-Rust physics running on a dedicated background thread at a fixed 60 TPS — fully decoupled from the render loop. Rigid bodies, collision detection, joints, and constraints, all deterministic and WASM-compatible.

Background-threaded · 60 TPS

04 / The Editor

A professional environment, without the lock-in.

Pulsar's editor is built on GPUI — the same GPU-accelerated UI framework that powers the Zed editor. It runs in its own thread, meaning a game crash never takes down your workspace. Everything you see can be replaced or extended with a compiled Rust plugin.

  • Visual blueprint scripting backed by a Rust-native bytecode VM
  • Multi-panel layout — dockable viewport, asset browser, terminal, profiler
  • Integrated Rust Analyzer LSP for in-editor code intelligence
  • Live scene editing with real-time physics preview at fixed 60 TPS
  • Plugin system — extend the editor with hot-reloadable Rust DLLs
  • Built-in database editor and project-level asset management
Pulsar Editor — default.scene
Pulsar Editor
live scene60 TPS physics

05 / Pulsar Hub

Your projects, one launcher.

The Hub is the front door to Pulsar: it keeps your projects and engine versions in one place, and opens them in the editor. It's what the download page installs today.

  • Home feed pulling the latest posts from the Pulsar blog
  • Project cards with thumbnails and last-opened times, plus search
  • Per-project actions: open, Git manager, project settings, move, reveal in file explorer
  • Engine Versions: the engine builds your projects run on
  • Templates to start from, and a Dependencies page
  • Open any existing folder as a project
Get the Hub (preview)
Pulsar Hub: the project manager's home screen with the blog feed, project cards and a project's context menu
Target platforms
goal: one codebase · not every target ships yet
WindowsWindows/
macOS/
LinuxLinux/
Android/
VulkanVulkan/
DirectX 12DirectX 12/
MetalMetal/
OpenGL/
OpenGL ES/
WebGL2WebGL2/
wgpuwgpu/
WebAssemblyWebAssembly/
WebGPUWebGPU/
OpenXROpenXR/
Blueprint Editor — player_controller.bp
Visual Blueprints
node graph#[blueprint]

06 / Visual Scripting

Blueprints that compile to native Rust.

Visual blueprint graphs are a first-class frontend for Rust code. Annotate any function with #[blueprint] and it appears as a node in the graph editor. Pure functions, exec-flow nodes, events, and control flow are all supported out of the box.

At runtime, blueprints execute through a lightweight bytecode VM that calls directly into Rust-backed dynamic libraries — giving designers fast iteration without touching source, and engineers full native performance where it counts.

Read the Blueprint docs

07 / Helio Renderer

Not enough triangles? Not a problem.

Helio's virtual geometry selects detail per cluster on the GPU, so scanned, film-grade assets render at full fidelity without hand-built LODs. Every shot below is captured live from Helio's VG Museum demo.

Read: Not Enough Triangles
400M+
source triangles in the demo scene
~3M
triangles actually rasterized per frame
3
tiers: hardware, software, dense
VG Museum — full scene
VG Museum — full scene
Scanned statue, full detail
Scanned statue, full detail
Cluster LOD up close
Cluster LOD up close
Dense asset instancing
Dense asset instancing
Sub-pixel error tolerance
Sub-pixel error tolerance
Macro view, no popping
Macro view, no popping

08 / Voxel Worlds

Dig anything, anywhere.

Destructible voxel terrain is a first-party plugin. Worlds are built from exact voxels, generated on the GPU and drawn from chunk trees — the goal is that you never see detail arrive or levels switch, from the ground to orbit.

Pre-rendered · orbit to ground
Voxel forest and mountains in the editor
Eroded voxel ridgelines in low sun
0.1–1 m
exact voxels
64³
cells per GPU-built chunk
< 6 ms
terrain GPU budget · 1440p · RTX 3060 (target)
Planets
Earth-sized cube-sphere planets, finite planes, or effectively infinite planes.
Chunk trees
64³-cell chunks generated on the GPU and streamed as a cut of an octree per cube face.
Destructible
Brushes from a single voxel up to the whole planet. An edit shows on the next frame.
Terrain layers
Ordered layer stacks with presets (Earth, moon, desert, flat), craters, erosion, rivers, lakes and climate maps.
Caves & cliffs
Generated cave networks, tunnels, chambers, ledges and overhangs.
Features
Procedural trees, rocks and buildings, generated wherever a cell is asked for.
One world, two consumers
CPU (collision, ray casts, edits) and GPU (generation, drawing) evaluate the same integer field, bit for bit.
A voxel planet seen from orbit, with clouds
Snow-capped voxel mountains from above
Terraced voxel hillside with pines
Desert dunes and rock outcrops
Pine-covered voxel slopes
A voxel valley below distant peaks

09 / Atmosphere, Water & Light

Worlds that feel like places.

Each of these is its own plugin with its own renderer feature — switch it off in your project and the frame simply draws without it.

Sky & weather
pulsar.sky

Sky & weather

A planet's air: atmosphere, the sun's colour through it, sun disc, aerial perspective and clouds. Presets give you Earth-like skies, and voxel worlds can tell the sky about the ground they sit on.

Ocean & water
pulsar.water

Ocean & water

A camera-centred FFT ocean with Fresnel/GGX sun reflection and glints, refraction, Beer–Lambert extinction, foam, caustics and underwater light shafts. Shore waves are driven by a terrain-derived coastline map.

Read: Water Is a Volume
Lighting that holds together
lights · fog · gi

Lighting that holds together

Local and directional lights with shadows and IES profiles, froxel-based volumetric fog, and world-space diffuse global illumination from a camera-centred probe clipmap.

Camera Lens
Real lens prescriptions, spectral rays, pupil functions
Corona
GPU-native particle system
Decals
Projected onto surfaces
Post Volumes
Blended post-process settings
Portals
Openings that show another place
Foliage & Wind
Placed and drawn on the GPU

10 / Architecture

Every object kind is a plugin.

A plugin owns its components, the contracts other plugins read, the Helio renderer feature that draws it, its file formats and its editor UI. The renderer itself knows no object kind.

Projects enable or disable plugins in Pulsar.toml. Disabled, a kind is simply absent and the frame draws without it. First-party plugins are MIT-licensed and live in their own repositories.

25+ first-party plugins

Rendering
Meshes
Static, skeletal and virtual-geometry meshes
Materials
PBR material rows and templates
Lights
Lights, shadows, IES, reflection captures
Sky
Atmosphere, sun, clouds, weather
Water
Ocean simulation, lighting, caustics
Fog
Global and local volumetric fog
Global Illumination
Probe-clipmap diffuse GI
Camera Lens
Physically based lens and flare
Particles
GPU particle emitters (Corona)
Decals · Sprites · Portals · Post
Surface, 2D, portal and post volumes
World & gameplay
Voxel Worlds
Destructible terrain and planets
Foliage
Foliage placement and wind
Physics
Rapier rigid bodies, colliders, joints
Splines
Authored curves
Input
Actions, mappings, runtime events
Animation
Skeletons, animator, blend spaces, IK
Editors & tools
Blueprints
Visual scripting and its compiler
Render Graph
Edit Helio's render graphs
Code Editor
Rust, TS, Python, Lua, TOML, Markdown + LSP
Matter
Texture painting (.pif): layers, brushes
UI
Widget assets and the widget editor
Table Editor
SQLite tables
Asset Viewer
Models, meshes, images

Beta expected Q1–Q2 2027

Like what you see? Follow along as it comes together.

11 / Developer Experience

Rust you already know.

No custom scripting language to learn. Your game code is plain Rust, with proc-macros bridging it into the editor's visual systems.

main.rs

Initialize the engine, register types, and run your game.

use pulsar_std::prelude::*;

pub fn main() {
    env_logger::init();

    let mut app = PulsarApp::new();

    // Register your project types
    app.register_type::<GameState>();
    app.register_type::<Inventory>();
    app.register_type::<PlayerData>();

    // Attach game systems
    app.add_system(game_state_system);
    app.add_system(inventory_system);
    app.add_system(player_update_system);

    // Load scene and run
    app.load_scene("scenes/default.level");
    app.run();
}
13 / Get InvolvedIn active development

Help shape

Pulsar's core systems are still being designed. The best time to influence its direction — and learn along the way — is right now.