Arne Vansteenkiste’s github projects
This page contains a few picks from my repos at github.com/barnex
mumax3
mumax3 is a GPU-accelerated micromagnetic simulator with ~1000 active users worldwide. It is cited in over 900 scientific publications.
bruteray
bruteray is a hobby ray tracer employing physically accurate light transport to generate realistic images.
rusty-mazes
rusty-mazes is a 2D puzzle/maze game + editor written in Rust.
coffee-cpu
After drinking too much coffee, @MathiasHelsen and I built a softcore CPU on FPGA. The coffee-cpu has a 14-bit memory space. It has an assembler and can solve a few challenges from projecteuler.net.
// This test program cycles the hex display
// through all 16-bit values
#def display 0x3FFF
#def Rcount R1
#label _start
XOR R0 R0 A R0 -cmp
STORE Rcount display N R0 -cmp
ADD Rcount 1 A Rcount -cmp
ADD R0 _start A PC -cmp
hamstr-game
hamstr-game is a 2D platformer game with ray-traced shadows written in Rust.
just-in-time-compiler
This is a just-in-time compiler for mathematical expressions like x + sqrt(y - 1)
. It does constant-folding and registerization. The resulting x86 binary machine code can be immediately executed for, e.g., super-fast function plotting.
ev3cam
ev3cam detects motion in a webcam stream (using gstreamer), so that a LEGO mindstorms knows where to aim.
Game of life
This is an insanely optimized implementation of Conway’s Game of Life (a Turing-complete “board game”). With extreme bit-fiddling, it achieves a ~300x speed-up over a naive implementation.
SetupSoftware
Not-so-aptly-named software to control the Magneto-Optical Scanning Microscope at Dynamat lab, UGent.
Raspberry heat
Home temperature control with Raspberry Pi and a web interface.
Bare-metal raspberry pi
Bare-metal kernel image for raspberry Pi. It writes PI on the display. Inspired by baking pi but written mostly in C.
Go bindings for CUDA
Go bindings for CUDA, my most starred project.
arnecompiler
This is a hobby compiler I wrote a really long time ago (2010). It can solve the first few problems of projecteuler.net.
Language example:
include(int)
variable(int answer, 0)
for(variable(int i, 0), _lessl(i, 995), _incl(i), block(
variable(int product, 1)
for(variable(int j, 0), _lessl(j, 5), _incl(j), block(
product(_mull(product, get_array(_addl(i, j))))
))
if(_greaterl(product, answer)
answer(product)
)
))
print_int(answer)
amumag
amumag is the Finite-Element micromagnetic simulator I wrote for my PhD thesis.
Chaos
This is a very old (2006) project I made for a course on dynamical systems.
Engine3D
This is is a very old (2005-ish) project where I wrote a 3D engine using Java 2D API.