| Crates.io | plutonium_engine |
| lib.rs | plutonium_engine |
| version | 0.7.0 |
| created_at | 2024-08-29 23:52:58.499899+00 |
| updated_at | 2025-08-16 21:46:27.815837+00 |
| description | Pure Rust Graphics Engine |
| homepage | https://zeke13.com |
| repository | https://github.com/zeke13dev/plutonium |
| max_upload_size | |
| id | 1357242 |
| size | 14,889,448 |
A pure Rust 2D graphics engine built on wgpu. SVG-first, DPI-aware, with text and optional widgets.
Features:
widgets)anim): Tween, Track::{Sequence,Parallel}, Timeline with labels/callbacks and CSS-like cubic-bezier easingreplay)Coordinate system:
API styles:
begin_frame(), draw_*, end_frame()widgets): higher-level objects that render via the same draw pathDrawParams supports z, scale, rotation, and tint (RGBA) for spritesCargo features:
[features]
default = ["backend-wgpu"]
backend-wgpu = [] # WGPU backend
raster = [] # PNG/JPEG helpers
widgets = [] # Retained-mode widgets
layout = [] # Simple layout helpers (anchors/percent)
anim = [] # Tweening/animation helpers
replay = [] # RNG streams and record/replay helpers
Versioning:
CHANGELOG.md for details.Testing and CI:
Runtime and stepping:
PlutoniumApp exposes set_fixed_timestep(dt_seconds) to run a fixed-dt update loop (useful for deterministic sims/tests).CLI flags:
run_app-based examples):
--record <path>: record per-frame inputs to JSON at <path>.--replay <path>: replay inputs from <path>.--dt <seconds>: set fixed timestep for the update loop.--fps <hz>: alternative to --dt; sets fixed timestep to 1/fps.cargo run --bin snapshots):
--seed <u64>: seed for RNG-driven snapshots.--record <path>: write a minimal script (--frames frames) to <path>.--replay <path>: load the script at <path> and render a verification scene.--frames <n>: number of frames for multiframe/timeline snapshots (default 3).--dt <seconds>: per-frame delta for multiframe/timeline snapshots (default 0.2).UPDATE_SNAPSHOTS=1 to update golden images on mismatch.Further docs in docs/:
docs/coordinates-and-dpi.mddocs/api-styles.mddocs/features-and-modules.mddocs/layering.mddocs/getting-started.mddocs/layout.mddocs/instancing-and-batching.mdExamples:
actions_demo: input action map (buttons/axes) and button hover/press/focus visuals.