Other projects
Breadboard computer
Personal project, 2019-2020
Fibonacci
I constructed this 8-bit breadboard computer, largely following Ben Eater’s brilliant series. I made some changes here and there, and used 74HC series ICs instead of 74LS as they are a lot cheaper and easier to find - these are mostly compatible but sometimes needed changes. I really enjoyed learning about hardware at the level of logic gates and gradually building up to the point where you have a fully-functional, programmable, Turing-complete computer running your programs.
Conway’s Game of Life and other cellular automata
Personal project, 2020
Always a favourite of mine - here’s Conway’s Game of Life. I love the emergence of complexity from the application of simple deterministic rules.
I have also implemented Wolfram’s 256 rules.
4 Billion Rules This is my extension of 256 rules, which uses 2 neighbours either side of each cell to determine the next cell state. As there are 5 cells, there are 32 possible states, meaning there are 2^32 ~ 4 billion rules. I always find something new when I explore some random rules.
Cellular Automaton Planter
Personal project, 2024
I developed a fully parametric elementary cellular automaton planter, initially using a combination of Python and OpenSCAD, and then rewritten using FreeCAD. You can input the rule number and the dimensions of the planter, and then it will generate the model for you.
Barbie Drive-In
Personal project, 2024
The Barbie Drive-In was a collaboration with a friend to make this gift, which is a 3D printed drive-in movie theatre playing the Barbie movie. I used a Raspberry Pi Zero W to play the movie. I designed an enclosure for the screen, as well as a projector which houses an RGB led. I also created a web app that lets you control the movie playback, as well as the colour/intensity of the projector.
RFID Mini Record Player
Personal project, 2023
This was a collaboration with a friend. The RFID Mini Record Player is a 3D printed record player that plays a song through Sonos speakers when you place a mini-record on it. The records have RFID tags in them, and the record player reads the RFID tag to determine which song to play. My contribution to this project was primarily in the design and printing of the record player and records.
Quadlock Clone - 3D Printing
Personal project, 2019
I love compliant mechanisms and print-in-place assemblies. I designed a clone of a Quadlock mount for 3D printing (by FDM) which prints as a single piece with an integrated orthoplanar spring.
3D Pong on an 8x8x8 LED cube
Personal project, ~ 2013
A long while back I made an LED cube, using protoboard and some Atmega microcontrollers plus endless soldering. I thought it might be fun to create 3D pong, so I created a controller using a thumbstick and an ATtiny microcontroller, and coded up a game of 3D pong.
Warman Competition - National finalists
Engineering student competition, 2011
As a team of 4 we developed an autonomous vehicle to traverse a track, pick up nine coloured balls, return to the other end of the track and place the balls in individual designated slots. The vehicle had to negotiate a height clearance obstacle in the centre of the track, and was subject to a number of size and weight constraints. I was responsible for the development of electronics and programming using Arduino to control a variety of sensors and motors. This project was great because I got to teach myself about Arduino, electronics, sensors, and designing PCBs.
Fundamental constants of the Universe
Summer vacation research scholarship, UNSW School of Physics, 2011
A fascinating project helping to reduce data from observations of quasars from the High-resolution echelle spectrometer instrument in the Keck telescope. The research group at UNSW found evidence of variation in the fine-structure constant across the sky, which goes against one of the fundamental assumptions of cosmology of isotropy.
(Source: King, J. PhD Thesis: Searching for variations in the fine-structure constant and the proton-toelectron mass ratio using quasar absorption lines. Sydney : University of New South Wales, 2010.)
AI Player for Yinsh
Course project, AI planning for autonomy, 2022
- Yinsh is a 2 player competitive board game, similar to a combination of Go and Othello
- As a team of 3, we created an AI player for this game using a few AI techniques:
- heuristic search
- Q-learning/temporal difference methods
- Monte Carlo Tree Search
- Video
Centralisation in Proof of Stake blockchains
Course project for Cryptocurrencies and Decentralised Ledgers, 2022
Centralisation is a problem for decentralised blockchains as it can lead to various attacks (e.g. 51% attacks). Proof of Stake is increasingly preferred as the consensus mechanism over Proof of Work for a variety of reasons (e.g. vastly lower energy consumption). As a team of 3, we scraped block headers for 3 proof of stake chains: Solana, Cardano, and Polkadot. We estimated the proportion of stake of the top validators based on selection frequency, and computed the level of centralisation using a variety of metrics (e.g. Herfindahl-Hirschman index). Solana was found to have a considerably higher level of centralisation than Cardano or Polkadot. This was consistent with Cardano and Polkadot having designed in incentives to discourage centralisation, while Solana had no such mechanism.