← todos os projetos

petunia3d

Editor 3D low-poly shape-first para assets estilo PS1/indie.

Petunia3D — editor low-poly shape-first (Rust + OpenGL)

Modelador 3D nativo focado em criação rápida de assets low-poly
(estética PS1/N64/DS/indie): desenhe a silhueta sobre a referência,
gere a malha, extrude/ajuste, faça UV e pinte — sem dominar um DCC.

Rodar

cargo run --release
# diagnóstico:
PETUNIA_BACKEND=gl cargo run        # força OpenGL puro
PETUNIA_BACKEND=wgpu cargo run      # força wgpu
RUST_LOG=wgpu_hal=debug cargo run   # motivo de backend falhar

Controles: MMB orbita • Shift+MMB pan • scroll zoom •
Tab modo • Del apaga • 1/2/3 vértice/aresta/face •
G/E/I/W/M/A/P/B ferramentas • Ctrl+Z/Y undo •
Home reseta câmera • H ajuda. Tudo remapeável em
assets/keybinds/petunia.toml.

Workspaces (pílulas no header)

Arquivo de projeto .petunia (binário versionado, UUIDs persistentes).

Backends

OpenGL-first: renderer puro glow (GL 3.3 Core, GLSL 330) com fallback
automático a partir do wgpu. Em GPU antiga sem Vulkan funcional
(ex. Intel Ivy Bridge no Mesa, onde o EGL do wgpu falha), o app cai
sozinho para OpenGL desktop. Detalhes em docs/ARCHITECTURE.md.

Layout

petunia3d/
├── src/main.rs            # binário fino (chama petunia_app::run)
├── crates/
│   ├── core/              # estado, câmera, eventos, contrato Module
│   ├── mesh/              # malha: prims/ops/uv/obj/triangulate
│   ├── commands/          # undo/redo (snapshots)
│   ├── config/            # i18n, keybinds, tema, tools.toml
│   ├── project/           # Asset(UUID)/Project, .petunia, export OBJ/GLB
│   ├── render/            # tipos + matemática compartilhada (grid, luz)
│   ├── render-gl/         # OpenGL puro (único lugar com GL)
│   ├── render-wgpu/       # wgpu (quando há GPU compatível)
│   ├── module-model/      # 12 ferramentas plugáveis
│   ├── module-paint/      # vertex paint + canvas
│   ├── module-uv/         # editor UV
│   ├── module-assets/     # asset library
│   ├── ui/                # layout egui (pílulas, painéis, viewport, gizmos)
│   ├── app/               # Core, backends, loop render-on-demand
│   ├── cli/               # CLI headless puro para automação e pipelines
│   ├── ffi/               # Camada C-ABI e include/petunia.h
│   └── xtask/             # Automação de CI/CD e prevenção de drift documental
├── assets/                # locales, keybinds, themes, ícones vetoriais/raster
└── docs/                  # Documentação VitePress, Manuais e Bíblia de Implementação (SSOT)

Documentação & Fonte Única da Verdade

Qualidade & Status Atual

Conteúdo acima sincronizado do README no GitHub durante o build — o site reconstrói toda semana e a cada push.