-
Notifications
You must be signed in to change notification settings - Fork 0
Solarxy Web
← Home
Solarxy Web is the viewer, validator and review toolset in the browser, on WebGPU, with node-based parametric modelling on the same Rust core as the desktop app. It runs entirely in your browser: nothing to install, nothing uploaded to a server.
Public beta. It is feature-complete for a first release; some things are still rough, and the .slxy scene format is frozen at version 1 so scenes you save now will keep opening.

solarxy.koljam.com
Nothing is installed and no account is needed. Your work is saved locally in your browser (see Saving your work below), never to a server.
Solarxy Web renders with WebGPU, so it needs a browser that supports it:
- Chrome or Edge 113 or newer, on Windows, macOS, ChromeOS or Linux.
- Safari 26 or newer, on macOS.
- Firefox support is arriving and varies by platform and version.
If your browser does not support WebGPU, Solarxy Web tells you so on arrival and does not download the engine. On Linux you may need to enable WebGPU explicitly; on older hardware or inside a virtual machine the browser may disable it even where it is otherwise available.
If it will not run for you, the desktop app does everything the viewer and validator do, natively, with no browser requirement.
Everything the desktop viewer does - PBR rendering, the inspection modes, UV overlap, validation overlays, HDRI/IBL, split viewports, and the review system - plus a node graph for building and modifying geometry parametrically:
- Parametric primitives and modifiers. Boxes, spheres, tori and more, fed through transforms, arrays, mirrors, materials and UV projection. Every node is non-destructive; change a parameter upstream and everything downstream recooks.
-
Points, lines and attributes (new in 0.8.0). Geometry carries named attributes on points and primitives; point clouds and polylines render beside meshes with per-point color end to end.
scattersprays points over any surface,copy_to_pointsstamps a template onto them, and the attribute nodes (create,randomize,promote,copy,from_image) write and move lanes. Inspect every value in the Attributes pane spreadsheet, or toggle per-point labels, point numbers and vector arrows right in the viewport. -
Expressions (new in 0.8.1). Any numeric parameter can hold a formula instead of a value: arithmetic, around thirty maths functions,
ch("box1/width")to read a parameter on another node, andnpoints()orbbox("size")to measure the geometry flowing in. One control drives many, renaming a referenced node rewrites the expressions that point at it, and a circular reference is refused as you write it. -
Attribute wrangle (new in 0.8.1). A small program run once per point or primitive:
@Cd = set(@P.x + 0.5, @P.y + 0.5, @P.z + 0.5);colours by position,@P = @P * (1 + 0.1 * sin(length(@P) * 8 + $T));ripples a surface. It reads the same language expressions do, soch(), the maths functions and$Tall work inside it.scattercan now take a density attribute, andcopy_to_pointsa per-pointpscale, both of which a wrangle is the first thing able to write. -
Playback (new in 0.8.1). A scene clock with a playbar under the viewport.
$Tand$Fbecome real, so anything driven by them animates. One tick is one frame, so$Tis exactly$F / $FPSand frame 90 always looks the same; a heavy scene plays slowly rather than skipping. Only nodes that actually read time recook, so a static scene pays nothing. - Publishing (new in 0.8.1). File > Export web bundle writes a zip that runs your scene on any static host, with no install and no account at the other end. It carries the engine rather than a recording, so an expression- or wrangle-driven scene keeps computing in the published page.
-
Physically based area lights (new in 0.8.1).
rect_area_lightshades as a real rectangle rather than a point at its centre, so Width, Height and Rotate reach the image: widen the panel and the highlight spreads and the terminator softens, turn it edge-on and it dims. It still cannot cast shadows. - Typed connections. Ports are typed and colour-coded; an illegal connection is rejected with feedback, and a lossy one is ringed.
-
Subflows. A
geocontainer opens its own canvas, so a complex object is one tidy node in the scene. - Imports as nodes. OBJ, STL, PLY and glTF/GLB load through import nodes and flow into the graph like any other geometry.
-
Typed contexts (new in 0.7.1). Beside the geometry graph sit dedicated material networks (
matnet: principled, matcap, toon, unlit surfaces) and texture networks (texnet: generators, adjustments and composites cooked on the CPU). Materials and textures are referenced by path, not wired across contexts. - Cameras as nodes (new in 0.7.1). Any pane can look through a camera node - focal length, sensor width and projection are parameters like any other - and a turntable export writes WebM, MP4 or a PNG sequence.
-
Export as nodes.
geo_exportwrites OBJ, STL, PLY or GLB from any point in a chain;image_exportwrites PNG or JPEG from a texture network. As of 0.8.0 the writers carry materials too: OBJ+MTL as a zip, GLB with the full PBR material table and embedded textures, and vertex colors round-trip through PLY and glTF.
The full catalogue is the Node Reference, which is generated from the application itself so it never drifts - and every node documents itself in the app: select it and press I.
The workspace bends to the task. Six desk presets (Default, Modeling, Review, and 0.8.0's Technical, LookDev and UV / Texturing) arrange the panels per workflow, and you can save your own. A searchable Tree panel outlines the whole scene; a Text panel (new in 0.8.1) keeps named snippets of code or prose in the scene file, with the same editor the wrangle field uses; any panel maximizes with a click or the backtick key; and the viewport answers 3ds Max-style view keys - T/F/L/B for the axis views, P/O for projection, Z to fit.
New here? Tutorial: Your First Scene goes from an empty canvas to an exported object in ten minutes, and Help → Take the Tour walks the interface in the app itself.
Or start from a working scene. File → Sample Scenes opens any of seven fully parametric documents, each carrying note nodes that explain the workflow it teaches: Modeling Basics, Copy & Scatter, Attributes & Displace, Texture to Material, Lights, Camera, Review, Animated Field (playback and a $T-driven wrangle) and Procedural Look-dev. Nothing in them is baked, so every parameter is yours to take apart. They are cooked by a test on every build, so a sample that stopped working would fail CI rather than a learner.
- Autosave. Your document is continuously saved to your browser's private storage (OPFS). If you close the tab or it crashes, reopening offers to recover it.
-
Scene files. File → Save writes a
.slxyfile to your machine - a self-contained archive holding the document and every asset it references, so it opens later on any machine with nothing missing. File → Open loads one back.
.slxy is versioned; the format is frozen at version 1 as of this release, so a scene saved now will keep opening in later versions.
What else persists. Interface preferences live in your browser's local storage, separately from the document: the theme, your saved Desks (panel arrangements), the dock layout, node-canvas chrome (grid, minimap, snap, connection style), pane header colours, and the preferences dialog's settings (autosave cadence, screenshot defaults, gizmo snapping, selection highlight). Per-pane view state - shading mode, wireframe weight, backgrounds - belongs to the session and is captured in the .slxy when you save, not in browser storage. Clearing the site's browser data resets the interface but cannot touch .slxy files you have saved to disk.
- Chrome and Edge are the tested browsers. Safari and Firefox may work but are less exercised.
- Very large imports (hundreds of MB) load, but responsiveness on them has not been tuned.
- Some Tier-2 modelling nodes (extrude, boolean) are not in this release; see the roadmap in Release Notes.
If something breaks, an error report is sent automatically (no personal data - just the error and where it happened). You can also open an issue on the repository.
See also: Node Reference · Review System · Inspection · Installation
Solarxy - A cross-platform 3D model viewer, validator and browser-based node modeler built with Rust and wgpu.
GitHub Repository · Releases & Downloads
© 2026 Marko Koljancic · MIT License
Getting Started
Solarxy Web
- Solarxy Web
- Your first scene
- Expressions
- Attribute Wrangle
- Runtime and playback
- Publishing a scene
- Node Reference
Tutorials
Using Solarxy
Reference
Help
Project