I'm Ed, a hardware engineer working at Innosilicon developing GPUs. Here are some of my ongoing projects, these are slow going until I finish my masters but should pick up after that.
A just-for-fun voxel based display processor for developing computer architecture and digital design skills. Still in an early stage developing system infrastructure.
Currently this includes a set of scripts for generating ISA definitions, and a C++ cycle-accurate simulation of the RISC style management core, and the DMA unit. I'm slowly implementing this in SystemVerilog when time permits, but this is not public yet.
This also includes a VGA driver design. I put this together for fun a while ago, but only recently resurrected it for this VPU project. Currently this just sends some hard-coded text output to a 1280x1024 VGA display. It's also acting as a test-bed for accessing RAM on the FPGA board.
I've never gotten on well with GTKWave, so decided to make my own wave viewer. For rendering this uses the fantastic olcPixelGameEngine, and has a custom VCD parser using ANTLR. This has lua-based scripting using sol3, but this isn't in the public version yet. Eventually this will be embedded into a proper GUI framework and become more than just a toy.
I'm not good at making games, but I do enjoy the occasional jam. These are all implemented in C++ using the olcPixelGameEngine, and my own library of utilities and extensions.
- The Weather Garden. OneLoneCoder 2022 Code Jam Entry. Unfinished and buggy, but lots of fun to make.
- The Recycling Button. GMTK 2023 Game Jam Entry. I was very squeezed for time on this one, but was pleased to get the very basics of a factory game in there.
- Don't Crash!. OneLoneCoder 2023 Code Jam Entry. Avoided the bugs, but forgot to add very much gameplay.
- Advent of Code
- Software raytracer. A Julia implementation of The Ray Tracer Challenge.
A few interesting highlights.
- High performance derivative free numerical optimisation. My final year university project.
- STUART. A very enjoyable university final year group project, a robot designed to test human/machine interaction.