Skip to content

v0.1.0 — The Viewport

Choose a tag to compare

@levu304 levu304 released this 24 May 03:38

Forge v0.1.0 — The Viewport

A cross-platform 2D CAD viewport with ECS-backed geometry, command-driven interaction, and a 60fps wgpu render pipeline.

Features

Render Pipeline (wgpu 29)

  • wgpu-based 2D render pipeline with orthographic camera
  • Grid renderer with major/minor lines, axis markers, and lazy regeneration on ≥10% camera shift
  • Entity renderer with dedicated WGSL pipelines for Line, Circle, Arc, and Polyline primitives
  • Surface loss recovery and window resize handling

Entity-Component System (hecs 0.10)

  • ECS geometry store with LineData, CircleData, ArcData, PolylineData components
  • Singleton resources: CameraState, GridConfig, InputState

Command System (nom 8)

  • Interactive LINE command with buffer-then-commit design and undo support
  • Full command parsers for LINE, CIRCLE, ARC, and PLINE (30+ parser tests)
  • CIRCLE/ARC/PLINE stubs ready for v0.2.0 implementation

Input (winit 0.30)

  • Mouse/keyboard handling with camera pan (middle-drag) and zoom (scroll wheel)
  • Click dispatch to active commands for point picking
  • 8 unit tests covering pan/zoom math and clamping

UI (egui 0.34)

  • Status bar with live coordinates, zoom %, and version string
  • Command-line text input with history (1000-entry cap)
  • Toolbar and property inspector stubs (ready for v0.2.0)

Build & Configuration

  • Rust 1.87 MSRV
  • Cross-platform: Linux (Vulkan), macOS (Metal), Windows (DX12)
  • 12 pinned dependencies

Deferred to v0.2.0+

  • Selection system, snapping engine, modify commands, undo/redo
  • Full interactive CIRCLE/ARC/PLINE commands
  • Rubber-band preview geometry
  • Layer system, file I/O, WebAssembly build

See the full changelog for details.