Lensfest 2nd Place 2026

Spectacles-polynode

The 'missing' web utility/core libraries for Snap Spectacles — SpaceCanvas, SpaceSVG, SpaceDOM, EventEmitter — backfills HTML5 platform APIs Lens Studio doesn't ship.

What it is

Polynode = polyfill + node. It backfills HTML5 platform APIs that Lens Studio doesn’t ship — DOM, 2D Canvas, SVG, EventEmitter — so existing JS/TS libraries can be ported to Snap Spectacles without rewriting from scratch.

Modules

SpaceCanvas is a drop-in replacement for HTML5 canvas. It uses the WebView and a few patterns the Snap team shared on the Reddit forums. There are 4 samples: a general gallery, something resembling Snakes, a bad shooter, and Conway’s Game of Life. SpaceCanvas runs hot — WebViews overheat the Spectacles thermals — so a tuning pass is scheduled.

SpaceSVG is the gem. It converts SVG strings into meshes that look nice and run efficiently. It isn’t fully spec-compliant but it’s solid enough to render 2D shapes, illustrations, and animations. SpaceSVG is what made the LaTex port (Matematex) viable.

SpaceDOM is a minimal DOM shim — alpha — useful when you’re trying to get a library to even compile in Lens Studio. Bug reports welcome.

EventEmitter is a hand port of node’s pattern, used across IoTone’s lenses for clean inter-script messaging.

In production

Used by Spectacles-Matematex for math notation in AR, the Moire Lens Lab art-book project, and several IoTone Japan client builds.

Roadmap

SpaceCanvas thermals tuning · SpaceSVG spec-compliance pass · SpaceDOM beta with worked examples · LaTex 1.0 release on Matematex.