Autonomous driving
Sub-millisecond latency for pedestrian and obstacle detection. Replace high-bandwidth CAN/Ethernet links with compressed streams.
A spatial codec for DVS / ATIS event streams. 47.6× mean compression at 1.51 bits/event, with a byte-for-byte round trip. One engine, shipped as a Python wheel and a browser WASM module — same bytes, edge to cloud.
First shipping product of the Mirror Fractal Method — a unified framework for hierarchical binary decomposition. Patent pending, eight inventions filed.
Paper · DOI 10.5281/zenodo.19704064
Event cameras emit sparse, redundant streams — neighbours share polarity, regions share trajectory, microseconds share spatial structure. MFC finds those local symmetries, encodes them once, and rebuilds the stream byte-for-byte. The compressed payload is the original, written more economically.
Neuromorphic sensors push millions of events per second. Raw throughput reaches 9 MB/s per camera — prohibitive for edge storage, wireless links, and multi-sensor rigs. MFC cuts it by 50–1000×, losslessly.
Sub-millisecond latency for pedestrian and obstacle detection. Replace high-bandwidth CAN/Ethernet links with compressed streams.
Event-based localisation and mapping on limited onboard compute. MFC encode runs under 1 ms on standard ARM cores.
Defect inspection at 10 000+ fps on conveyor lines. Stream compressed events to central servers for fleet-wide monitoring.
24/7 surveillance at a fraction of the storage cost. Lossless preserves every event for forensic review.
Microsecond-resolution experiments in neuroscience, plasma physics, and optical metrology. Long captures without terabyte files.
Low-power eye and hand tracking on headsets. Reduce radio transmission energy — the dominant power cost.
MFC sits between the sensor and your existing pipeline. Drop-in encode at the edge, decode on the receiver — output is bit-exact.
The sensor emits (x, y, t, p) tuples — roughly 9 bytes each,
up to millions per second.
Buffer a 5–10 ms window and call mfc.compress(). Output is a
compact .mfx packet — ~150 KB/s instead of 9 MB/s.
UDP, TCP, MQTT, 5G. Multi-camera rigs collapse onto a single uplink. Storage cost drops proportionally.
mfc.decompress() rebuilds the original event stream. Feeds
directly into detectors, SLAM, or analytics.
Same encoder as the SDK — runs entirely in your browser, no upload. Capped at 500 000 events per run for the WASM memory budget; the native build is ~8× faster on the same payload.
Drop event-camera file here
.bin.aedat.h5.dat.evb.npy.csv
Decoded payload compared byte-for-byte against the original encoded payload. A match means decompression returns the exact input — no quality loss.
Left: events as uploaded. Right: events reconstructed from the MFC payload. Both frames are pixel-identical — that is what lossless means. Gold = positive polarity, cream = negative.
Full spatiotemporal event cloud — X and Y are
sensor axes, T is time. Drag to rotate.
Every event projected on the sensor plane. Colour encodes timestamp — cool early, warm late. Reveals motion trajectory of the captured scene.
Open .mfx in a hex editor to inspect the MFX1
magic header and compressed payload. Restore original events with
mfc decode file.mfx.
.mfx container format and byte layoutFull-length streams, offline batch jobs, and real-time pipelines run on the native Rust / Python SDKs.
The same compressed payload travels through every binding. Encode in Python,
decode in Rust; encode in WASM, decode on the server — same .mfx.
mfc-codec on PyPI — cp311 wheels for Linux, macOS arm64,
and Windows. Drops into PyTorch, NumPy, and Jupyter workflows.
# Install from PyPI pip install mfc-codec import mfc events = mfc.load_events("sample.bin") compressed, stats = mfc.compress(events, width=34, height=34)
~80 KB WebAssembly module — the exact engine running on the demo above. Works in browsers, Node, Deno, Cloudflare Workers.
// JavaScript import * as mfc from './pkg/mfc.js'; await mfc.default(); // auto-detects .bin / .aedat / .h5 / .npy / .csv const out = mfc.compress_auto(bytes, filename);
No runtime dependencies — embedded Linux, RTOS, high-throughput servers. Private crate; not on crates.io. Available to licensees.
// Commercial — info@mirrorfractal.com use mfc::{Event, compress}; let (bytes, stats) = compress(&events, w, h, time_bins, max_depth);
mfc CLI for scripting, CI, and offline re-encoding of
recorded datasets. Built from the private Rust source.
# Shell
mfc encode capture.bin -o capture.mfx
mfc decode capture.mfx -o restored.csv
mfc info capture.mfx
mfc bench ./dataset/
libmfc.so / mfc.dylib / mfc.dll
with a stable C ABI and header. Built on request as part of a commercial
engagement.
// On request — info@mirrorfractal.com // Stable C ABI; header ships with the engagement.
Reference server wrapping the core for language-agnostic access. Delivered per engagement — endpoint surface and auth tailored.
# Per engagement — info@mirrorfractal.com # Endpoints + auth shaped to the deployment.
Self-describing binary format with versioned header and multi-frame support. All fields little-endian. Spec is stable and documented.
| Offset | Size | Field | Description |
|---|---|---|---|
| Header (15 bytes) | |||
| 0 | 4 | magic | MFX1 |
| 4 | 2 | version | format version (u16) |
| 6 | 2 | width | sensor width (u16) |
| 8 | 2 | height | sensor height (u16) |
| 10 | 2 | time_bins | temporal resolution (u16) |
| 12 | 1 | level | codec parameter (u8) |
| 13 | 2 | n_frames | number of frames (u16) |
| Per frame (× n_frames) | |||
| — | 4 | n_units | payload length marker (u32) |
| — | 4 | data_len | payload bytes (u32) |
| — | var | data | compressed payload (opaque) |
Lossless on every digit, every sample. Encode times measured native on a single thread; the browser demo runs the same encoder at ~8× the latency due to WASM single-threading.
| Digit | Samples | Avg events | Ratio | Bits / event | Encode |
|---|---|---|---|---|---|
| 0 | 5,923 | 5,444 | 53.4× | 1.35 | 0.65 ms |
| 1 | 6,742 | 2,432 | 36.6× | 1.97 | 0.42 ms |
| 2 | 5,958 | 4,708 | 50.3× | 1.43 | 0.58 ms |
| 3 | 6,131 | 4,703 | 50.4× | 1.43 | 0.58 ms |
| 4 | 5,842 | 3,794 | 44.4× | 1.62 | 0.54 ms |
| 5 | 5,421 | 4,372 | 48.7× | 1.48 | 0.56 ms |
| 6 | 5,918 | 4,215 | 47.7× | 1.51 | 0.55 ms |
| 7 | 6,265 | 3,687 | 45.2× | 1.59 | 0.52 ms |
| 8 | 5,851 | 4,702 | 50.0× | 1.44 | 0.58 ms |
| 9 | 5,949 | 3,927 | 46.1× | 1.56 | 0.52 ms |
| Total | 60,000 | 4,172 | 47.6× | 1.51 | 0.55 ms |
Pre-built cp311 wheels for Linux (manylinux_2_34), macOS (arm64), and Windows (amd64). Drops into PyTorch, NumPy, and Jupyter workflows.
# Linux x86_64 · macOS arm64 · Windows x86_64 pip install mfc-codec # Python import mfc events = mfc.load_events("sample.bin") compressed, stats = mfc.compress( events, width=34, height=34, time_bins=16, max_depth=8, )
“Lossless is not a luxury — it is the only signal you can trust when the prediction is wrong”
— Mirror Fractal Lab · Codec note · MMXXVI
MFC is proprietary technology, patent pending. Available for evaluation and commercial licensing to qualified partners.