frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: A high-performance audio visualizer using Rust, WASM, and React

https://audiofftimage.netlify.app/
1•dmaynard•50m ago

Comments

dmaynard•50m ago
Hi HN,

Yet another silly audio visualizer. Why? I built this project for three reasons. First, I wanted to explore and keep up with the latest developments in software engineering, so I built this in collaboration with AntiGravity, Google's AI IDE. Secondly, I wanted to explore the current state of the "Web Platform" and understand the current capabilities of this evolving and ubiquitous platform. Lastly, I wanted to see what it would look like if I could animate an image to music in real-time within a web app. You can drag and drop your own .mp3s and .pngs onto the canvas to test it out.

I knew that performance would be a problem. Images have millions of individual pixels. So I applied Wheeler's Aphorism: “All problems in computer science can be solved by another level of indirection.” I store the image not as a matrix of RGB values, but rather as a matrix of indices into a fixed size palette of color values. I use the median cut algorithm to compute a new palette each time a new image is loaded. I can then animate the palette in real-time, and the only per-pixel operation is a single indirection through the palette.

I instructed AntiGravity on what to build and specified that I wanted the computation-heavy graphics parts (image quantization, palette animation, and image rendering) to be done in Rust compiled to WebAssembly (WASM). AntiGravity chose the architecture: React for the UI and loading of files, and the native Web Audio API to handle audio playback and the Fast Fourier Transforms to compute the power spectrum. To achieve 60fps without choking the browser's garbage collector we allocate static chunks of zero-copy memory buffers for the image, for the quantized image, and for the power spectrum values inside the WASM package instead of passing massive arrays of pixel data back and forth. JavaScript tells WebAudio to write the audio frequencies directly into Rust's memory, and Rust writes the modified image pixels directly into a shared buffer in the WASM package that the HTML5 <canvas> paints from. Having mutable static arrays is the antithesis of the Rust philosophy which results in all the functions living inside unsafe{} blocks, but I do believe this memory scheme minimizes data copying.

It’s been a long, strange trip getting here. I have been a programmer for 54 years, and have programmed home computers for 44 years. The entire software development environment (fig Forth) on my first home computer (Atari 800) lived on a single 90KB floppy disk, and ran in 32KB of RAM. Software distribution was either by copying a floppy disk or through a publisher and a distributor and a retailer. Today, I'm directing an AI to build an app that with one button push I can publish to the web with a potential audience of billions. I will say that the recent rise of AI assisted software development is by far the biggest jump in capability that I have ever seen. In fact, my reaction to the new paradigm of AI coding is best captured by the default image for this app: the Flammarion engraving.

If you want to read a bit more about the technical architecture, I wrote a short deep-dive on my blog here: https://software-artist.com/blog/rust-audio-visualizer

I'd love to hear your thoughts, feedback, or any code critiques on the Rust/JS bridge! If you'd like to chat or collaborate, my email is in my profile.

The Open/Closed Problem in AI

https://blog.mempko.com/the-open-closed-problem-in-ai/
1•vinhnx•3m ago•0 comments

Prompt Politeness Affects LLM Accuracy

https://arxiv.org/abs/2510.04950
1•KnuthIsGod•3m ago•0 comments

In Vivo Base Editing of PCSK9 with Verve-102 for Hypercholesterolemia

https://www.nejm.org/doi/full/10.1056/NEJMoa2601283
1•Kaibeezy•3m ago•0 comments

Do I have AI Psychosis?

https://curzel.it/blog/2026_05_26_do_i_have_ai_psychosis.html
1•Curzel•5m ago•0 comments

In Praise of SwiftUI

https://troz.net/post/2026/swiftui_praise/
1•frizlab•6m ago•0 comments

The institutional memory for your codebase

https://github.com/amarlearning/lore
1•amarlearning•9m ago•0 comments

DynIP – Dynamic DNS with RFC 2136, IPv6, DNSSEC, and BYOD

https://dynip.dev/
2•dynip•11m ago•0 comments

Show HN: AI agent token cost calculator for Codex and Claude Code loops

https://tinyopsstudio.com/ai-agent-token-cost-calculator
1•tinyopsstudio•12m ago•0 comments

Nativewind: Tailwind CSS for React Native

https://github.com/nativewind/nativewind
1•steveharing1•15m ago•0 comments

Recreating Daejeon, South Korea, in Blender and Unreal Engine [video]

https://www.youtube.com/watch?v=dOsO3tO9PF8
1•nogajun•17m ago•0 comments

Ferrari's New Jony Ive–Designed EV Is Swathed in Glass and Aluminum

https://www.wired.com/story/ferrari-ev-jony-ive-design/
1•divbzero•21m ago•1 comments

Cloud meeting recorders record everyone in the room. Not just you

https://thoth-app.com/blog/2026-05-13-why-your-meeting-recorder-shouldnt-upload-your-audio/
1•MattVePhD•24m ago•0 comments

Show HN: Presentforme.ai – Make slide decks explain themselves

1•cheecheongfan•24m ago•0 comments

What's so special about Emacs? [video]

https://www.youtube.com/watch?v=mJZDmO5yOxE
1•internet_points•26m ago•0 comments

The power struggle in the narrow seas, a visual story

https://ig.ft.com/maritime-chokepoints/
1•helsinkiandrew•28m ago•0 comments

A look inside ITER, the world's largest fusion energy project

https://www.cnet.com/science/climate/inside-the-worlds-biggest-bet-on-fusion-energy/
2•giuliomagnifico•28m ago•0 comments

Google Health Sucks

https://joebaldwin.me.uk/blog/google-ruins-fitbit/
2•edent•30m ago•0 comments

Heimdall: Formally Verified eBPF-to-Rust Migration

https://arxiv.org/abs/2605.25411
1•igortru•36m ago•0 comments

Contrastive Decoding Diffing: Recovering Finetuning Data Without Weight Access

https://arxiv.org/abs/2605.25902
1•Timofeibu•37m ago•0 comments

Cognitive Security as an AI Safety Cause Area

https://www.lesswrong.com/posts/KGcE7eAdfxHchk25X/cognitive-security-as-an-ai-safety-cause-area
1•joozio•37m ago•0 comments

How to make a well-structured business architecture diagram?

https://www.processon.io/blog/business-architecture-diagrams
1•kapababala•37m ago•0 comments

Orchestrating AI code review at scale

https://blog.cloudflare.com/ai-code-review/
1•pramodbiligiri•40m ago•0 comments

Switchberry: Sometimes a good time costs extra [video]

https://www.youtube.com/watch?v=wxFHw57XGjA
1•teleforce•43m ago•0 comments

We need to add 6k seats to Congress

https://www.usatoday.com/story/opinion/2026/05/25/congress-larger-size-house-representatives/9014...
3•Cider9986•46m ago•0 comments

In-Browser Container Builds

https://ochagavia.nl/blog/fully-in-browser-container-builds/
1•gurjeet•46m ago•0 comments

Bird–Meertens Formalism

https://en.wikipedia.org/wiki/Bird%E2%80%93Meertens_formalism
1•tosh•46m ago•0 comments

The first class of AI natives is graduating

https://www.wsj.com/tech/ai/ai-natives-graduates-job-cuts-6bab8ac9
1•FDETalkDotCom•48m ago•1 comments

Show HN: A high-performance audio visualizer using Rust, WASM, and React

https://audiofftimage.netlify.app/
1•dmaynard•50m ago•1 comments

Show HN : Building Production MPC Wallets: Architecture, Solana Implementation

https://nethsara.substack.com/p/byowbuild-your-own-wallet-a-field
1•nethsarask•52m ago•0 comments

Show HN: GPTFortress, a 24/7 live-stream playing Dwarf Fortress with GPT-5

https://www.twitch.tv/gptfortress
1•leostera•55m ago•0 comments