Skip to content

starzonmyarmz/roxel

Repository files navigation

Roxel

CI

A lightweight, open-source voxel editor for desktop. Simple to learn, fun to use, and nice to look at.

Roxel editing a 64³ diorama scene

Features

  • Brush, erase, recolor, eyedrop, shape, select, and move tools on an open-world 3D voxel grid — paint anywhere on X / Z and as high as memory allows; the floor at y = 0 is the only hard boundary
  • Shape tool: rectangle, ellipse, line — 2D on the active build plane or extruded into a 3D box / cylinder / line; long-press the shape rail button for a primitive picker, hold Shift while dragging the footprint to lock aspect (square / circle / 45° line)
  • Select tool: drag a 3D AABB on a face plane, then bulk delete / recolor inside it
  • Move tool: drag a selected voxel along the picked face plane or arrow-key nudge; click a bare voxel with no selection to move just that voxel
  • Shift+click line draw between the last placed voxel and the cursor
  • Built-in palettes (Sweetie 16, PICO-8, DawnBringer 16/32, Endesga 32, NA16, Basic) plus user palettes with add/new/duplicate/rename/delete and drag-to-reorder
  • Orbit / pan / zoom camera with isometric default angle
  • Save / load .rox project files (RON), with a 10-entry Open Recent menu
  • Import MagicaVoxel .vox, Qubicle .qb, and Goxel .gox
  • Export to MagicaVoxel .vox, Goxel .gox, Wavefront .obj, glTF .glb (Unity / Godot ready), transparent .png, and .svg
  • Import / export Adobe Swatch Exchange .ase palettes
  • In-app toast notifications for save / load / import / export results
  • Light / Dark / System themes with separate canvas and floor color preferences, plus optional Minecraft-style floor grid lines and a permanent RGB axis triad at world origin
  • Canvas-first UI: a single left inspector with floating tool island and (on Win/Linux) a top-center menu pill, all hideable for focus mode

Install

Prebuilt Roxel.app (macOS) and Roxel.exe (Windows) are attached to each GitHub Release.

Warning

macOS builds are self-signed and not notarized. Gatekeeper will block first launch — either as "unidentified developer" or, on recent macOS versions, as "damaged and can't be opened" (the quarantine attribute set on downloaded files). To bypass:

  1. Right-click Roxel.appOpen → confirm in the dialog.

  2. If macOS still refuses with the "damaged" message, strip the quarantine attribute:

    xattr -dr com.apple.quarantine /Applications/Roxel.app

Windows builds are unsigned; SmartScreen will warn on first run — click More infoRun anyway.

Run

cargo run --release

Dev profile uses opt-level = 1 for the crate and opt-level = 3 for deps to keep iteration fast.

Controls

Key Action
B Brush
E Erase
P Paint (recolor existing voxel)
I Eyedropper
S Shape (rect / ellipse / line; 2D or extruded)
M Select (drag a 3D AABB on a face plane)
V Move (drag a selected voxel; click bare voxel for ad-hoc move)
Alt (hold) Temporary eyedropper; releases back to previous tool
Shift + click Draw a 3D line from the last placed voxel to the cursor
/ / / Nudge selection 1 voxel on X / Z (Move tool)
Shift + / Nudge selection 1 voxel on Y (Move tool)
Shift + drag Lock Move drag to the same horizontal plane
Backspace / Delete Clear voxels inside the active selection
Space + left-drag Pan (Figma/Photoshop style)
Z + left-click Zoom in 2× toward target
Alt + Z + left-click Zoom out 2×
Cmd/Ctrl + = Zoom in 2×
Cmd/Ctrl + - Zoom out 2×
Cmd/Ctrl + 0 Frame view on the voxel cluster (panel-aware)
Cmd/Ctrl + Z Undo
Cmd/Ctrl + Shift + Z Redo
` Focus mode — toggle inspector + floating chrome

Left mouse drag in the viewport applies the current tool. Right mouse drag orbits the camera. Scroll to zoom.

Packaging a macOS .app

cargo install cargo-bundle
cargo bundle --release
open target/release/bundle/osx/Roxel.app

The bundle picks up assets/icons/roxel.icns via [package.metadata.bundle] in Cargo.toml.

Releases

Tagged versions trigger a GitHub Actions workflow that builds and uploads Roxel.app (macOS) and Roxel.exe (Windows) to a GitHub Release.

To cut a release:

# bump version in Cargo.toml, commit
git tag v0.3.1
git push origin v0.3.1

The workflow lives at .github/workflows/release.yml. See Install for first-run bypass on unsigned macOS / Windows builds.

File format

.rox projects are RON-serialized. Open-world: only occupied cells are stored, no fixed grid size, coordinates are signed so models can sit at any position relative to the origin.

struct ProjectFile {
    voxels: Vec<([i32; 3], Color8)>,
}

License

MIT — see LICENSE.

About

A lightweight, open-source voxel editor for desktop. Simple to learn, fun to use, and nice to look at.

Topics

Resources

License

Contributing

Stars

1 star

Watchers

0 watching

Forks

Sponsor this project

Contributors