Skip to main content

MakerPortal / field notes

Notes from inside the build.

Working ideas about independent software, product judgment, interface craft, and the useful tension between speed and care.

Newsletter · Privacy-first

Field notes in your inbox

Privacy-first newsletter via Buttondown — no tracking pixels. Get new notes + archive drops first. Free snippet from BLExAR as lead magnet.

No tracking, unsubscribe anytime · RSS at /rss.xml · Privacy-first per D-014

Showing all 40 field notes

01

Paper / On-Device AI

ANE routes by expression, not arithmetic

A 64-shape primitive matrix and ANE counters reveal routing follows operation form, with a ~0.77 bytes-per-token law holding across fp16, int8, and 2-bit…

By Joshua Hrisko · 6 min read

Aug 25, 2026

02

Comparison / On-Device AI

Fun-ASR vLLM speedup: what conditions hide

Fun-ASR-Nano's 16x, 3–5x, and ~50% speedup figures are attached to different—or missing—conditions that the README never aligns.

By Joshua Hrisko · 5 min read

Aug 24, 2026

03

Readout / On-Device AI

Qwen3.8-27B Cold Fusion: mixed attention

GGUFs of a Qwen3-27B fine-tune with 75% linear attention layers and ~2/3 thinking-token reduction — benchmark gaps and unverified quality claims noted.

By Joshua Hrisko · 5 min read

Aug 23, 2026

04

Correction / On-Device AI

Wax hybrid recall is 6.1 ms, not sub-ms

Wax's own benchmark puts hybrid recall p95 at 6.1 ms — six times above the "sub-millisecond" label — and the figure omits which index engine ran.

By Joshua Hrisko · 6 min read

Aug 22, 2026

05

Comparison / On-Device AI

OBLITERATUS MMLU gaps: what conditions hide

V1's −6.0pp and V2's −0.3pp MMLU gaps come from sample sizes a factor of ten apart; V1's arithmetic doesn't reproduce — the figures are not…

By Joshua Hrisko · 6 min read

Aug 21, 2026

06

Readout / On-Device AI

Minna: local doc search with grounded LLM

Minna indexes documents into a hybrid vector-plus-full-text store with citation-grounded chat, but requires macOS 26 beta and ships PostHog telemetry on…

By Joshua Hrisko · 6 min read

Aug 20, 2026

07

Correction / On-Device AI

3.02× FastMTP requires draft depth ≥ 3

A 3.02× speedup exceeds the 3.00× ceiling for depth-2 speculative decoding, placing FastMTP's draft depth at 3 or more with an implied acceptance rate of…

By Joshua Hrisko · 6 min read

Aug 19, 2026

08

Paper / Audio DSP

BEM HRTFs match measured: headphone VR only

BEM-synthesised HRTFs match measured HRTFs on every polar localisation metric (N = 20), but torso-omission error at low rear elevations is untested.

By Joshua Hrisko · 6 min read

Aug 18, 2026

09

Field note / Local LLMs

MoEspresso coder trades at 2.455:1 NLL

Pruning DeepSeek-V4-Flash-0731 cuts safetensors by 32.63%, but each 0.1-unit code NLL gain costs 0.245 units of WikiText degradation.

By Joshua Hrisko · 6 min read

Aug 17, 2026

10

Field note / Local LLMs

buun-llama-cpp VBR uses 10 steps per layer

The step-count formula in buun-llama-cpp's examples reduces to exactly 10 degradation steps per attention layer — 6 codec tiers × 2 KV sides minus 2.

By Joshua Hrisko · 6 min read

Aug 16, 2026

11

Field note / Local LLMs

Serial loading reclaims 4.2 GB on 8 GB devices

Two 7B Q4 models exceed an 8 GB ceiling when loaded concurrently. Serial residency via llama-swap reclaims 4.2 GB of KV cache headroom.

By Joshua Hrisko · 6 min read

Aug 15, 2026

12

Field note / On-Device AI

Espresso bounds CoreML overhead at 168.7 µs

Espresso's 3.41× ANE speedup over CoreML, read against a 70 µs dispatch floor, sets a 168.7 µs lower bound on CoreML per-token overhead.

By Joshua Hrisko · 6 min read

Aug 14, 2026

13

Field note / Local LLMs

Two 7B Q4 models exceed DLLM's 8 GB VRAM

Measured Q4 GGUF sizes show two 7B models consume 8.4 GB, 0.4 GB over DLLM's ceiling, leaving no room for the embed model or KV-cache.

By Joshua Hrisko · 5 min read

Aug 13, 2026

14

Field note / Metal & the Neural Engine

M4 Max decode uses 99.8% of bandwidth

M4 Max llama.cpp inference consumes 99.0–99.8% of its 400 GB/s bandwidth, leaving no slack to absorb VM overhead — a direct constraint on near-native…

By Joshua Hrisko · 6 min read

Aug 12, 2026

15

Field note / Local LLMs

PrivateRedact limits 7B decode to 4.0 tok/s

PrivateRedact's auto-selection limits Ollama inference to 4.0 tok/s on an 8 GB Pi 5 by defaulting to CPU memory, ignoring unified bandwidth.

By Joshua Hrisko · 5 min read

Aug 11, 2026

16

Field note / On-Device AI

ANEForge hits 2.28× speculative decode

ANEForge reaches 16.8 tok/s on Qwen3-8B (up from 7.4), hitting the verify(K)≈verify(1) ceiling at 29.6 GB/s vs Orion's 42.8 GB/s floor.

By Joshua Hrisko · 7 min read

Aug 10, 2026

17

Hardware build / Measurement

Calibrated Multichannel & Binaural Audio Recording on iPhone

Class-compliant multichannel USB audio capture, a loaded 1 V / 103 dB SPL nominal reference at 1 kHz, and binaural recording analyzed on iPhone.

By Joshua Hrisko · 11 min read

Aug 09, 2026

18

Field note / Metal & the Neural Engine

LLMKube's 66× speedup is actually 35.4×

Two figures in LLMKube's GKE benchmark are wrong: prompt processing is 35.4×, not 66×, and token generation is 13.9×, not 17×.

By Joshua Hrisko · 6 min read

Aug 09, 2026

19

Hardware build / Mic arrays

Acoustic Beamforming on iPhone: UMA-8

Real-time SRP-PHAT direction finding and MVDR superdirective beamforming with the miniDSP UMA-8 mic array on an iPhone in Biquadia.

By Joshua Hrisko · 10 min read

Aug 09, 2026

20

Field note / Local LLMs

watchOS LLM speed is capped by CPU bandwidth

ETOS-LLM-Studio pins watchOS inference to the CPU path, so bandwidth divided by model size sets the ceiling — 9.4 tok/s on a Pi 5 at 17 GB/s.

By Joshua Hrisko · 7 min read

Aug 08, 2026

21

Field note / Local LLMs

Qwen3.6-35B decodes ~11.2 B active per pass

Bandwidth-bound decode math on RTX 5090D measurements backs out that only ~32% of Qwen3.6-35B's nominal weights are active per forward pass.

By Joshua Hrisko · 7 min read

Aug 07, 2026

22

Field note / On-Device AI

Orion's ANE Decode vs CPU Baseline

Driving Apple's Neural Engine through private frameworks: 172.4 tok/s on ANE vs 283 on CPU, and delta compilation that pays for itself in 1.21 steps.

By Joshua Hrisko · 7 min read

Aug 05, 2026

23

Field note / On-Device AI

Presspeech's 100ms Latency Overhead

Bandwidth calculation for Presspeech's Parakeet model on M4 Max shows inference takes ~1% of latency, with pipeline dispatch consuming the rest.

By Joshua Hrisko · 7 min read

Aug 05, 2026

24

Field note / Edge Hardware Systems

RTX 5090 Decode Bandwidth & 25% Penalty

imp reports a 42-48% decode gap over llama.cpp on consumer Blackwell. The 5090's own 5090D comparison shows the gap is just a bandwidth model.

By Joshua Hrisko · 7 min read

Aug 05, 2026

25

Field note / On-Device Vector Search

On-Device Vector Search in Swift

How to build distraction-free local semantic search on iOS using CoreML feature extraction and native Swift HNSW index graphs, grounded in Notiary.

By Joshua Hrisko · 5 min read

Aug 03, 2026

26

Field note / Edge Hardware Systems

Running 3B LLMs on Edge SBCs & MCUs

Why parameter count isn't the bottleneck for on-device LLMs: memory bandwidth, GGUF/INT4 quantization math, and ANE lessons from Thumbdash and itria.

By Joshua Hrisko · 6 min read

Aug 03, 2026

27

Field note / Web Audio & Neural DSP

Low-Latency WebAudio DSP for Voice AI

How to build zero-glitch AudioWorklet streaming, Schroeder reverb tails, and formant filtering for real-time speech and Voice AI in the browser.

By Joshua Hrisko · 5 min read

Aug 03, 2026

28

Field note / Web Audio & Synthetic Voice

Zero-Latency Web Audio & Voice AI Architecture

How to build sub-100ms real-time voice streaming applications in the browser using ElevenLabs API, WebAssembly decoders, and AudioWorklet ring buffers.

By Joshua Hrisko · 8 min read

Jul 29, 2026

29

Field note / Edge Hardware Systems

Benchmarking Edge AI SBCs & Accelerators

Hardware benchmark comparing x86 SBCs, ARM CUDA Tensor Cores, and USB Edge TPUs for local vision, speech, and embedding inference.

By Joshua Hrisko · 9 min read

Jul 28, 2026

30

Field note / Voice infrastructure

ElevenLabs & Web Audio Streaming Latency

Browser latency ledger for ElevenLabs TTS, Web Audio scheduling, DSP, and output—plus mistakes that make a fast demo sound broken.

By Joshua Hrisko · 7 min read

Jul 19, 2026

31

Field note / Edge databases

LiteFS Multi-Region SQLite Latency Model

Mental model for LiteFS multi-region SQLite: single-primary writes, local replicas, fly-replay forwarding, and honest latency modeling.

By Joshua Hrisko · 8 min read

Jul 19, 2026

32

Field note / GPU deployment

Building Honest WebGPU Browser Benchmarks

Verification-first WebGPU benchmark methodology: warm-up, queue completion, CPU cross-checks, honest FLOP accounting, and cloud crossover math.

By Joshua Hrisko · 8 min read

Jul 19, 2026

33

Field note / AuraLinter

Agentic Coding Loops Beyond the LLM

How RAG-grounded retrieval and a clang++ verifier catch a hallucinated biquad formula a single LLM call ships — and why AuraLinter isn't fully on-device.

By Joshua Hrisko · 5 min read

Jul 17, 2026

34

Field note / BLExAR

HM-10 vs nRF52: Not the Same BLE UART Profile

Why HM-10's single-characteristic UART and the Nordic UART Service aren't interchangeable, and the newline-framing gotcha that only appears at low MTU.

By Joshua Hrisko · 5 min read

Jul 17, 2026

35

Field note / Notiary

Running Semantic Search Entirely On-Device

Notiary's semantic brain: converting a sentence-transformer to CoreML, deterministic storage math, and the fixed-length-input problem long notes hit.

By Joshua Hrisko · 4 min read

Jul 17, 2026

36

Field note / nymic

Why nymic Needs No Training Step

How kNN-VC voice conversion works: WavLM feature extraction, nearest-neighbor matching, HiFiGAN vocoding, and voice-bank coverage limits.

By Joshua Hrisko · 4 min read

Jul 17, 2026

37

Field note / MotionLink

CMHeadphoneMotionManager: What You Really Get

Quaternion attitude from the Headphone Motion API, why the reference frame resets on every launch, and the recentering pattern that fixes it.

By Joshua Hrisko · 5 min read

Jul 15, 2026

38

Studio philosophy

Why we ship small

The case for narrow products, strong opinions, and releases that can still surprise their makers.

By Joshua Hrisko · 3 min read

Jul 11, 2026

39

Interface notes

Designing the one-handed moment

A field note on glanceability, reach, and building interfaces for the imperfect moments where software is actually used.

By Joshua Hrisko · 4 min read

Jul 04, 2026

40

Build log / 004

Inside Biquadia: On-Device Audio Lab

How privacy, real-time constraints, and the character of physical sound shaped MakerPortal’s newest release.

By Joshua Hrisko · 5 min read

Jun 28, 2026