Solarxy is a cross-platform tool designed for viewing, debugging, and validating 3D models in real-time. Built using Rust with wgpu (WebGPU), Solarxy offers high-performance rendering and analysis capabilities.
Key Features:
PBR Rendering: Utilizes Cook-Torrance BRDF for realistic materials, including normal mapping, shadow mapping, IBL (diffuse + specular), SSAO, bloom, and selectable tone mapping.
Inspection Modes: Provides multiple modes such as Material ID, Texel Density, Depth, Overdraw, AO Preview, and UV Map with overlap detection.
Validation Overlay: Color-coded visualization of issues like flipped normals, non-manifold edges, and degenerate triangles.
Split-Viewport Comparison: Enables side-by-side or stacked panes for independent camera setups and display settings per pane.
CLI Companion (solarxy-cli): Terminal-based analysis for batch validation and CI/CD integration.
Material Inspector: Detailed panel for viewing material properties, including base color swatches, metallic/roughness values, and texture thumbnails.
Review System: Allows spatially-anchored annotations with categories (Info, Warning, Question, Change) and threaded replies.
Multi-Format Support: Compatible with OBJ, STL, PLY, glTF/GLB, HDR, and EXR formats.
Audience & Benefit:
Ideal for 3D artists, engineers, and developers who need efficient model analysis and validation. Solarxy provides a comprehensive platform for inspecting and debugging models in real-time, ensuring high-quality outputs while supporting CI/CD pipelines through its CLI tool.
Solarxy can be installed via winget, making it accessible for users on various platforms.
README
solarxy
A lightweight, cross-platform 3D model viewer and visual debugger built with Rust and wgpu. Inspect 3D models in a real-time graphical viewer with split viewports and inspection overlays, or analyze them from the terminal with built-in validation checks.
Documentation
Full user documentation lives in the Solarxy Wiki:
User Guide — viewer, analyze TUI, preferences, validation
Installation — install paths per platform, first-launch caveats, system requirements
CLI Reference — every flag for solarxy and solarxy-cli
Split viewport -- side-by-side or stacked panes with independent cameras and display settings per pane; draggable divider (double-click to reset 50/50)
Inspection modes -- Material ID, UV Map with overlap detection, Texel Density heat map, Depth, heat map (), ()
Material overrides -- Clay Light, Clay Dark, Chrome (IBL-only reflective black), and Silhouette (flat black) for surface inspection
Review System -- place spatially-anchored annotations on a model's surface, save to .solarxy-review.json sidecar, re-open later to see annotations re-anchored. Categories (Info / Warning / Question / Change), threaded replies, cascade-delete confirm. Toggle via Shift+R.
Material Inspector -- view-only per-material panel (Window → Material Inspector) with base-color swatch, scalar PBR (metallic/roughness), alpha mode, and 128×128 texture thumbnails for albedo / normal / metallic-roughness / occlusion / emissive
Validation overlay -- color-coded 3D visualization of validation issues (flipped normals, non-manifold edges, triangle-budget overruns, degenerate triangles, missing UVs, bad material refs)
Configurable validation -- per-project solarxy.toml overrides budgets, severities, and filename-classifier rules; JSON Schema published at schemas/solarxy-config.v1.json for editor autocomplete
CI-friendly CLI -- solarxy-cli --mode analyze --paths "assets/**/*.glb" --adapter github-actions --adapter-format sarif emits SARIF / JUnit-style / TAP / workflow-commands output via the solarxy-validate adapter crate
Dockable panels -- Viewport / Sidebar / Review Panel / Console / Material Inspector / Properties / Outliner tabs in an egui_dock layout; auto-save on quit, restore on launch, Window → Save Layout / Restore / Reset
Ayu Mirage theme -- flat dark UI with amber accent (#FFC44C), bundled Lilex font, custom dock styling
egui sidebar -- interactive control panel with bidirectional keyboard sync
Interactive analysis -- TUI with per-mesh and per-material breakdowns, validation checks
Persistent preferences -- configure defaults via the GUI Edit → Preferences… dialog (Ctrl/⌘+,) or tweak the TOML file directly; live viewer changes are persisted via Edit → Save View Settings as Default
Drag-and-drop -- drop model files or HDR/EXR environment maps directly into the viewer window
Supported Formats
Format
Extensions
Notes
Wavefront OBJ
.obj
Meshes, materials (.mtl), textures, UVs
STL
.stl
Geometry only, no materials
PLY
.ply
Flexible vertex attributes, optional normals and UVs
glTF 2.0
.gltf, .glb
PBR materials, normal maps, embedded textures
Installation
# macOS — Homebrew. The cask installs the GUI app (Gatekeeper cleared
# automatically); the formula installs the CLI.
brew install --cask marko-koljancic/solarxy/solarxy
brew install marko-koljancic/solarxy/solarxy-cli
# Windows — winget
winget install Koljam.Solarxy
Linux and direct downloads (DMG / MSI / AppImage), CLI-only installs,
first-launch caveats, system requirements, and the update flow: see
Wiki / Installation.