Skip to content

v1.5.0 — inline STL model viewer, presentation views

Latest

Choose a tag to compare

@base698 base698 released this 07 Oct 21:47
· 19 commits to main since this release

Amythest 1.5.0

Linked 3D models render in the note viewer, and the MCP surface gains private, expiring presentation views. Each tarball contains both binaries (amythest server, amy client).

Inline STL models

An ![[model.stl]] embed used to be a download link. It is now an interactive canvas — drag to orbit, scroll to zoom, double-click to reset — with the file name and triangle count underneath.

No 3D library was added. An STL is a flat list of triangles with face normals, so parsing is a loop over a DataView and drawing is a single shader; a scene graph would have cost more than the rest of the bundle. The viewer is a 7KB chunk, loaded only on pages that actually embed a model, the same way mermaid is.

Details that matter on real files:

  • The binary/ASCII sniff uses the triangle-count arithmetic, not the solid header — plenty of binary exporters write that header too.
  • Zero-length face normals are replaced with the triangle's geometric normal, since they otherwise shade as black facets.
  • The mesh colour follows --accent with a rim light from --fg, so a model reads against both light and dark backgrounds and repaints on theme change.

Failures degrade rather than break: no WebGL, a fetch error, an oversized file, or a mesh with no triangles all restore the plain download link with a note, so a reader never loses access to the file.

Private expiring presentation views

present_content is an authenticated MCP tool for showing indexed vault content without publishing it. Opening assets makes an immutable copy bundle under the data directory — outside the vault and the search index — reachable at a random, expiring URL; opening a note returns its existing canonical URL instead. No source file is changed and no public share is created. The site's existing access boundary still applies. See docs/presentations.md.

Install

tar xzf amythest-1.5.0-<os>-<arch>.tar.gz
install -m 0755 amythest amy ~/bin/

SHA-256 checksums in checksums.txt.