Jonas Wagner's Avatar

Jonas Wagner

@29a.ch.bsky.social

Hacker at https://29a.ch Rust, Go, Typescript, Computer Graphics, Audio, Guitars, Gamedev, Paragliding and Bikes. Was @29a_ch on twitter

86 Followers  |  128 Following  |  43 Posts  |  Joined: 16.11.2024  |  2.047

Latest posts by 29a.ch on Bluesky

Video thumbnail

Built a little tool to analyze the harmonics and inharmonicity of plucked guitar strings. It shows how strongly each harmonic is detuned and then estimates the inharmonicity (white line) from that. Works surprisingly well. Also, needlessly colorful charts ftw. #dsp #rustlang #egui

28.08.2025 18:35 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Pretty cool. Is there a reason you chose not to perform more oversampling to reduce the aliasing given that it doesn't need to run in realtime?

09.07.2025 21:28 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Close up shot of the full

Close up shot of the full

Strawberry moon fly by. #photography

11.06.2025 13:02 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Thanks for the suggestion, it's good to know someone liked the old scope. I'm considering adding a switch in the future.

10.06.2025 18:23 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Shadertoy

www.shadertoy.com/view/wctGz8 if you want to see it in action, also has a few more comments in the code there. :)

09.05.2025 18:50 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

The sun rising over Switzerland. A little bit more path tracing and atmospheric simulation fun. The DEM used is ASTGTM v003, the city lights are based on OSM data. Written in #rustlang.

04.05.2025 17:54 β€” πŸ‘ 6    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

A little #guitar tuner with an interesting visualization I'm hacking on using #rustlang and #egui. The visualization is the input signal plotted against a sine wave at the target frequency. If it's out of tune it's spinning, the more in tune it is the more stable it becomes. Inharmonicity = wiggles.

28.04.2025 19:59 β€” πŸ‘ 10    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

I wonder what's getting detected in the image under WT. The cluster of matching blocks is fairly big and well aligned but I just can't see it by eye. The bottom left is a bit more visible to the eye.

21.04.2025 10:09 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Nothing useful in the console, but I was able to reproduce it while running the debugger now. Looks like the embedded page is caught in some 'infinite loop' in a generator. So likely a bug in exquisitecorpse.club that somehow gets triggered when embedded.

19.04.2025 14:10 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Site Preview | Hypertext TV Daily programming for the handmade web. Airing now.

Tested it with some of my old demos, doesn't seem to hang and looks so awesome
hypertext.tv/test/29a.ch/...
hypertext.tv/test/29a.ch/...

Nice hackery! :)

19.04.2025 10:55 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Looks really cool, but ended up hanging. If I open the embedded side directly it doesn't seem to hang. Sadly no idea what the cause might be. Brave 1.77.97 on Linux.

19.04.2025 10:49 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Wow indeed. Didn't know iframes were possible in docs.rs. @keavon.bsky.social deserves some sort of awesome docs award. :)

16.04.2025 08:27 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
C2PA Content Credential Photo Forensics I have added support for c2pa to my photo forensics tool forensically.

I have added support for viewing C2PA "content credential" meta data in my photo forensics tool forensically: 29a.ch/2025/04/12/c...

I guess I'm just getting old myself, but there is something satisfying about working on a (relatively) old code base again. A bit like meeting an old friend.

13.04.2025 09:50 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

const t = Function.prototype.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply.apply; 😜

30.03.2025 22:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Fun idea and pretty damn hard! Somehow the tracking protection in brave messes up the ability to click on some of the nodes though. Confused me a lot at first why some nodes weren't clickable.

29.03.2025 18:31 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Impulse Response Creator I created a little free online tool to analyze, deconvolve, tone match, and process impulse responses.

Finally release my little collection of impulse response tools today: 29a.ch/2025/03/23/i...

After procastinating writing some help pages and a blog post about it for 3 months.

Also s/x/bsky/g on the site. :)

#rust #audio #wasm

23.03.2025 20:18 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Thanks a lot for the explanation! I really need to find some excuse to play with shaders again. :)

09.02.2025 10:04 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

How are all those colors so consistently pretty? Looks like bismuth in soft golden hour light. Are you using a special color space or model?

07.02.2025 17:18 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Looks like particles in curl noise. :)

19.01.2025 09:43 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I guess snoise2D is a bit bigger but it looks amazing enough to let it count. :)

17.01.2025 21:40 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

The fix works, shows me an error page now.

10.01.2025 16:49 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

`Uncaught (in promise) TypeError: Cannot read properties of null (reading 'requestDevice')`

I think the error handling could use improvement. Looks cool in a WebGPU enabled browser though. :)

10.01.2025 11:29 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

What was the compiler error you got? If I recall correctly the compiler does tell you if there is a matching trait that you didn't import.

03.01.2025 15:18 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

How would to prefer it to work?

03.01.2025 11:57 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Looks really cool :)

02.01.2025 15:10 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

It depends, it's not included when box-sizing is border-box. :)

30.12.2024 22:29 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

What is this anarchy. Why does the Zmas tree point into the negative direction? :D

21.12.2024 12:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image Post image Post image

I guess someone at ableton had some fun. ;)

21.12.2024 11:11 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

More broken dsp code accidentally producing #generative glitch #art. :)

12.12.2024 17:20 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

It's all wrong but at least it looks somewhat pretty. Might even make for some half decent album art.

10.12.2024 19:55 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@29a.ch is following 20 prominent accounts