Maxwell Beck

Hi! I'm a hobbyist programmer from Illinois with interests in realtime graphics, music, and retro hardware. I am currently studying Computer Science at University of Wisconsin-Madison.

Email Github YouTube

Latest Articles

BS-1: Breadboard Synthesizer

September 3, 2021 - 9 minute read

While I mainly focus on the software side of computers, I have always had an interest in electrical engineering too. So, after getting burnt out over some programming projects, I decided to try out something a bit different and build some sort of electronic circuit. I took inspiration from all the breadboard computers people have built, mostly inspired by Ben Eater, but I decided to take a different approach and built an analog synthesizer on breadboards instead.




DIY breadboard analog synthesizer

As a break from my programming endeavors, I built a simple analog synthesizer entirely on breadboards. It features two René Schmitz VCO 4069s, a Polivoks VCF clone, and a Henry Santana JFET VCA, along with many utilities including a mixer, two LFOs, two ADSRs, and a simple MIDI-to-CV converter. While the synthesizer itself is done, I am now working on building a sleek case for the whole setup. After that, I will do a quick writeup on how I selected all the component designs and share some insight into the building process.

Global Manifold Sampling

[WIP] Generalized indirect lighting strategy for difficult light effects

My most ambitious project, an extension of Specular Manifold Sampling in order to improve convergence and overall performance The general idea is to use a global seeding pass akin to photon mapping to generate seed paths and offsets for specular manifold walks. This strategy has already shown promise in greatly improving constraint solver convergence rates. However, I still need to sort out the details of calculating the probability density of the overall sampling process.


[WIP] High performace SBVH builder written in Rust

Bounding volume hierarchies with spatial splits (described here) offer unparalleled performance in raytracing tasks. However, constructing them is a notoriously expensive task. While I do not expect to reach interactive rates, I am planning to leverage Rust's strong concurrency framework to reach performance similar to Intel's Embree kernel. I am also taking inspiration from Parallel Spatial Splits in Bounding Volume Hierarchies to guide the parallelization and optimization approaches.



[WIP] Experimental parallel incremental computation framework

Throughout some of my projects, I have run into the desire for an incremental computation framework in order to build more efficient applications. Current solutions like salsa and Adapton are nice, but they miss out on one feature: parallelism. I believe it should be possible to combine the best of both worlds and create an incremental computation framework that efficiently scales to multiple cores by leveraging the underlying graph structure of many large scale computations.



[Abandoned] Oscilloscope view tool written in Rust

rawrscope was an attempt at making a tool for generating oscilloscope views of audio files, typically from retro computers. My goal was to create something that outperformed the current standard, corrscope, both in video quality and raw performance. It leveraged a unique wave centering strategy based on the phase of the fundamental frequency of the wave. However, this did not work as well as I had hoped, and the program itself became an unmaintainable mess, so I eventually threw the idea out.



As a manifestation of all my interests, I currently participate in the demoscene and am part of the demogroup Onslaught. You can find all of my releases on Pouët and CSDB, but I will put my most notable ones here too:


Commodore 64 8K Demo - 8th @ CSDB Only Sprites Compo

View on Pouët, CSDB


Commodore 64 4K Intro - 8th @ Solskogen 2020 combined 64K/4K intro compo

View on Pouët, CSDB

The Night Shift

4K Executable Graphics - 16th @ Revision 2020 executable graphics compo

View on Pouët