Skip to content
SDK Docs
Discord Order Now

Reference

Limits

Sizes, budgets and timeouts to design around.

Design within these limits from the start. Most problems with new apps come from going over one of them.

Package

ItemLimit
App fileOne HTML file, under 2 MB
Glasses moduleWebAssembly 1.0, up to 128 KB
MemoryExactly one 64 KiB page as both minimum and maximum, including an 8 KiB stack
Name1 to 31 printable ASCII characters, the same in the manifest and the Rust code

Runtime

ItemLimit
Callbacks500,000 instructions per call to app_init, app_render, app_event or app_stop
Not availableWASI, threads, SIMD, bulk memory, reference types, a start section, and files or sockets on the glasses

Drawing

Per frame. Several budgets are shared with MIRA’s own interface, so leave headroom.

ItemLimit
Canvas640 × 480, 16 gray levels
Drawing calls512, shared with MIRA’s interface
Text calls64, shared with MIRA’s interface
Image calls64, with up to 131,072 image pixels in total
4-bit image memory32 KiB, shared with MIRA’s interface
1-bit masksUp to 32 × 32 each, 16 slots shared with MIRA’s interface

A call that doesn’t fit a budget is skipped rather than drawn partly.

Messaging

ItemLimit
Phone to glasses3,500 bytes of JSON per message
Glasses to phone4,096 bytes of JSON per message
Realtime380-byte scenes to the glasses, 379-byte controls back
Phone requests8 in flight, 384-byte payloads, 8-second timeout

Phone companion

ItemLimit
Network10 MB request and response bodies, 8 requests at a time
Microphone16 kHz mono, 16-bit samples, in frames of about 100 to 256 ms. At most 256 ms waits while your page is busy.