What is localViewer?
localViewer is a privacy-first file viewer that opens Markdown, YAML, CSV, STL, 3MF, STEP, OpenSCAD, and image files directly in your browser — with one guarantee: files never leave your computer. No uploads, no servers, no tracking.
Why localViewer?
Most online file viewers upload your files to their servers. localViewer processes everything in your browser:
- Private by default — Your CAD files, design documents, and data stay on your device.
- Works offline — After first load, the app works completely offline as a PWA.
- No installation needed — Open in any modern browser; optional desktop app on Windows via PWA install.
- Fast — No server round-trips; file rendering happens instantly on your hardware.
Supported Formats
- Documents: Markdown (`.md`, `.markdown`, `.txt`)
- Data: YAML (`.yaml`, `.yml`), CSV (`.csv`)
- 3D Models: STL (`.stl`), 3MF (`.3mf`), STEP/STP (`.step`, `.stp`), OpenSCAD (`.scad`)
- Images: SVG, PNG, JPG, GIF, WebP, BMP, ICO, AVIF
Features
Markdown: Render, edit, save, and auto-align right-to-left / left-to-right text (supports Hebrew, Arabic, English mixed).
YAML: Collapsible tree with expand/collapse controls for deep structures.
CSV: Renders as a sortable table; auto-detects delimiters (comma, semicolon, tab).
3D Models: STL, 3MF, and STEP files render in a WebGL viewer with color, wireframe, grid, and fit-to-view controls. 3MF slicer projects (Bambu Studio, PrusaSlicer) with multi-part geometry are fully supported.
OpenSCAD: Compile `.scad` files in the browser and view the result in the 3D viewer.
Images: Pan, zoom, and inspect transparency with background toggles.
Multi-tab: Open multiple files at once; each opens in its own tab.
Windows integration: Install as a PWA or register a per-user "Open with → localViewer" in File Explorer.
How It Works
localViewer is a static single-page app with no build step. When you open a file, the browser detects the file type and routes it to the appropriate loader: marked for Markdown, js-yaml for YAML, a hand-written parser for CSV, three.js + ThreeMFLoader for 3MF, occt-import-js (OpenCascade WASM) for STEP, and openscad-wasm for OpenSCAD. 3D models render in a Three.js WebGL canvas with interactive controls. All processing happens on your device; nothing is sent to any server.
FAQ
Is my data secure?
Yes. All file processing happens in your browser on your device. Nothing is uploaded to any server, and there are no network requests for your file content. You can verify this by opening DevTools → Network tab and opening a file — no requests for your file data will appear.
Does it work offline?
Yes. After your first visit, localViewer registers as a PWA (Progressive Web App) and caches the app shell, three.js, marked, and other libraries. Subsequent visits work completely offline. Large libraries like the STEP importer (occt-import-js, ~7 MB) are fetched lazily on first use and then cached.
Can I edit Markdown files?
Yes. Click Edit to toggle between preview and source; click Save to write back to the original file (if you installed it as an app) or open a Save-As dialog. You can also create new Markdown files with New MD.
How do I use it on Windows?
Three ways: (1) Open the URL in a browser and drag-drop files; (2) Click Install app in the header to install as a PWA, then right-click a file → Open with → localViewer; (3) Use the PowerShell helper in the repo's tools/ folder to register "Open with → localViewer" manually.
Can I use it on Android?
Yes. Open the URL on Android → menu → Add to Home screen, then open files via the file manager or by downloading them and selecting localViewer as the default viewer.
What about multi-part 3MF files?
localViewer fully supports 3MF production extension multi-part files from slicer projects (Bambu Studio, OrcaSlicer, PrusaSlicer). These files split object geometry across multiple .model files within the archive; localViewer resolves and combines them so you see the complete assembly.