Hi, I'm tsoj
I learned programming by writing chess engines, and I still like doing that from time to time. I am also quite involved learning and working with artificial intelligence, from simple regression to large language models.
Apart from computer related fields I'm curious about life sciences, and like to think and argue about social, political, and economic questions. Oh, and I really enjoy music.
Contact
Things I made
Chess programming
Nalwald
A superhuman chess engine using the alpha-beta algorithm and a big array evaluation to search for the best moves. It is written in the compiled programming language Nim.


Annie
Annie is a lichess bot which is based on Nalwald. It not only is programmed to play stupid moves (preferably en passant), but also to make fun comments during the game.
Moonbird
Moonbird is not a chess engine, but an engine that plays Ataxx. Apart from a few minor details it is very similar to Nalwald though. Moonbird uses alpha-beta, big array evaluation, and is programmed in Nim too.


Chess diagram to FEN
This is a machine learning project using Python and Pytorch to extract the chess positions (in FEN notation) from chess diagrams. It uses a chess board specific architecture which uses common image classification architectures as building blocks.

Chess engine similarity
An LLM based approach to compare the similarity of the source code of various open source chess engines.

Engines-dev Discord LLM
A project to finetune a causal pre-trained LLM to imitate the chat of Discord servers related to chess engine development.
Interactive programs
Glome
Renders 3D models in the surface of a 4D-hypersphere in real time using C++ and OpenGL.
Ataxx GUI
A graphical user interface for playing Ataxx between engines and humans.

Obfuscated Asteroids
A small, right justified, reverse indented, obfuscated C program that let's you play a game of Asteroids in the terminal. This was an entry for the 2020 IOCCC.

Not obfuscated Asteroids
An Asteroids game for the terminal, but this time written in Nim in a more readable style, and with a few more features.
Other programming
Cpp2 tree-sitter grammar
A tree-sitter grammar for the C++ successor language Cpp2 which is currently in development as the cppfront transpiler. The Cpp2 extension for the Zed editor uses this tree-sitter grammar.
NeuLib
A standalone Nim library for small, fully connected neural networks with support for sparse inputs.
Music
Compositions
I wrote multiple simple short songs:
I use this song as ringtone on my phone.
Transcriptions
I often transcribed music (writing down the scores from audio), sometimes so that I could play it on trumpet, sometimes also just as a pastime. Here are some of the more completed ones:
3D modeling
Chrysopelea MK-I
An ship mod for the Elite-inspired space game Oolite. Made in Blender and the free student version of Substance Painter.


Minecraft tower castle
A minecraft build I created on a survival anarchy server in 2022. It even had a small library of books I wrote.

Writing
Stockfish vs Aliens
Only 24 days left, and five of the best supercomputers still haven't been successfully connected to fishtest. Though, we are having trouble already feeding the millions of cores anyway. But we have no choice. These last 2 months, humanity stopped everything it was doing. The only thing that counts: Write Stockfish patches. Write Stockfish patches. Write. Stockfish. Patches. Because if we fail, we will have failed the last time. The end of humanity. It won't be a supervulcano, it won't be an asteroid, and most surprisingly, it wouldn't be humanity dooming themselves. But who could've expected that stereotypically evilish extraterrestrials from alpha centauri had a fondness not only for interplanetary domination and destruction but also for theatrical final chess matches to decide which planet lives, and which ones have to make place for an interstellar highway construction project.
Poem
Go back in blames
The sinner I now see
Oh blimey, it is me
Go down in flames
A dream I had
Today I dreamed of picking a lock. I've never picked a lock in real life, but in my dream it worked pretty well. The lock had five pins, two of which were spools. The lock was so easy that I only needed a paperclip. Though I don't remember how I tensioned the core, I think I used mind power (but I definitely remember that I tensioned the core somehow, because I noticed counter rotation when I got to the spools). I am clearly watching too many lock picking videos.
A Node Uncut
(in collaboration with AI and inspired by Robert Frost's "The Road Not Taken")Two nodes diverged in a search tree wide,
And knowing I can't search them both
Through every branch where scores reside,
I looked past alpha's bound with pride
To where beta bounds my growth;
Then took the other with null window bare,
And having perhaps the better claim,
For move ordering placed it there;
Though late reduction's pruning flair
Had cut them both the same.
And both that deepening equally lay
In leaves not yet confirmed at peace.
Oh, I marked some futile moves away!
Yet knowing how captures still may play,
I let my quiesce release.
I shall be telling this with might
When principal variants hence unfold:
Two nodes diverged in my search tonight,
And I — I pruned the paths less bright,
And that has shrunk my branching fold.
Drawing
Ascii art
__, o n_n_n ooooo +
o // o\ ( ) \ / \ / \ /
( ) \ \_> / \ | | / \ ( )
|_| /__\ /___\ /___\ /___\ /_\
__ .~'~. __
/ ´| |´ ' |'.
\ \ | | | / / \ \
.~-'. \./ .'-~. \ \
( -~:{*}:~- ) \ \
'~-.' /'\ '.-~' \ \
/ / | | | \ \ \ \
.__.| |.__/ \ \
´~.~´ \ \
| \\\
| \\\
\ \\\
/ \\\
|\ / /| o==<X>==o
/_ \ |/ _\ ()
/___\|_\ ()
O
Doodles
Some drawings I made during school and university
Things I like
Music
- Classical: Scarlatti, Bach, Prokofiev, Dvorak, Beethoven, Rachmaninoff, Tchaikovsky
- KPop, JPop, Classic Pop, Pop, Rock
- Jazz: Dizzy Gillespie, Duke Ellington, Fela Kuti, Louis Armstrong, Stevie Wonder, Ella Fitzgerald, Count Basie
- Movie Scores: John Williams, Nicholas Britell, Danny Elfman, Ennio Morricone, James Horner
- Lots of other stuff
TV Shows
- Star Trek: Deep Space 9, Next Generation, The Orville, Lower Decks
- Battlestar Galactica
- Silicon Valley
- Mr Robot
- The Expanse
- How to Sell Drugs Online Fast
- Parks and Recreation
- Death Note
- Westworld (Season 1)
- Blackadder
- Derry Girls
- Avenue 5
- The Queen's Gambit
- Resident Alien
- Firefly
- Loki
- Cyberpunk: Edgerunners
- 3 Body Problem
- The Penguin
- Andor
- Nu Pagadi
Games
- Flight Simulator 2004
- Flight Simulator 2024
- Age of Empires II
- GTA SA
- Kerbal Space Program
- Minecraft
- Cities: Skylines
- Elite: Dangerous
- Oolite
- No Man's Sky
- Red Dead Redemption 2
- Outer Wilds
- Cyberpunk 2077
Books
- Lord of the Rings
- Harry Potter
- The Hitchhiker's Guide to the Galaxy
- The Expanse
- Miss Marple
- Donald Duck (Don Rosa)
- Tintin and Snowy
- Lucky Luke
- K. Wallander novels
- Die Gespensterjäger
- Children of Time
- The Three-Body Problem
- Permutation City
- Diaspora
- Mistborn
Movies
- Lord of the Rings
- Those Magnificent Men in Their Flying Machines
- Avatar (blue people)
- Tintin
- Star Wars
Painters
Carl Blechen



Carl Gustav Carus

Carl Spitzweg

