3DM Viewer

Rating: 
0
No votes yet

3DM Viewer opens a CAD file on the phone, draws it, and lets you turn it around. It is a viewer and nothing else: there is no editing and no save path anywhere in the program, so it can never write over the file you opened. Everything runs on the device - no network, no telemetry, no cloud.

FORMATS (one renderer for all five)
- .3dm - Rhino models, from the render meshes stored in the file
- .stp / .step - STEP solids: planes and cylinders, tessellated on the phone
- .stl - binary and ASCII
- .3mf - objects, instances and colours, as slicers save them
- .bgcode - PrusaSlicer binary G-code, drawn as the toolpath it is

FEATURES
- Turn it around: orbit with one finger, pinch to zoom, double tap to fit
- Locked views (X / Y / Z square-on, each tap a quarter turn) plus a free 3D view
- Three display modes: solid, wireframe, see-through
- A switch per layer: Rhino layers, STEP solids, 3MF objects, or the extrusion types of a sliced file, starting from the visibility stored in the file
- A print-layer slider for sliced files: peel layers from the top and bottom like the slicer's own preview
- Model info: counts, bounding size, and the application that wrote the file
- A drop simulation: the model tumbles onto its real corners, the accelerometer steering gravity
- No sample models are shipped - bring your own, that is what the file picker is for

WHAT IT WILL NOT DO
Whatever cannot be shown is said out loud, never left silently missing. Rhino needs render meshes in the file (Save Small has none); STEP draws planes and cylinders and reports any other surface type; 3MF skips beam lattices, slice stacks, textures and ZIP64.

STATUS AND RESPONSIBLE USE
Proof of concept / work in progress, shared as is, no warranty (GPLv3). It is a viewer, not a measuring instrument: a shape that looks plausible is not a promise it is right - do not take a dimension off the screen and cut metal to it. Verified on one device (Sony Xperia 10 III, Sailfish OS 5.1); it has been reported to crash on a different device and that report is open - if it happens to you, please file an issue with your device model and the output of the app launched from the phone's Terminal.

ARCHITECTURES
aarch64 (Sailfish OS 5.0+). No armv7hl build.

Written with Claude Code (Anthropic).

Source, issues, releases: https://github.com/JimKnopfIoT/harbour-3dmviewer

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-3dmviewer-0.1.2-1.aarch64.rpm2.56 MB18/08/2026 - 15:29
Changelog: 

- Link with --exclude-libs,ALL. sailfishapp's -rdynamic was exporting all
22725 symbols that the static openNURBS archive contributed into the
executable's dynamic symbol table, where they preempted the system libz
and libuuid for every library loaded afterwards. Addresses a startup crash
reported on a device other than the development one, whose trace ends in
the hybris linker; not confirmed to be that crash, but a real defect.