Hi, I'm tsoj

A profile picture of 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


GitHub

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.

Nalwald chess engine Nalwald in terminal

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.

Moonbird Ataxx engine Moonbird in terminal

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 diagram to FEN conversion

Chess engine similarity

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

Chess engine similarity analysis

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.

Ataxx GUI interface

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.

Obfuscated Asteroids game

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:

Song 4
In 2020 I tried to write a pop song.
Ringtones
A mix of various well known ringtones.
I use this song as ringtone on my phone.
Song 2
A song for accordion I wrote in 2018.
Song 13
My first ever composition. Made in 2017 on a free version of Studio One 3.
Song 31
A pretty chaotic song. Also from 2017.
Song 22
Weird song from 2017, chords and melody take some getting used to.
Song 1
Again weird chords, this time from 2018.

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.

Chrysopelea MK-I spaceship model Chrysopelea MK-I spaceship model view 2

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.

Minecraft tower castle build

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

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 Blechen - Bäume im Herbst bei Sonnenaufgang Carl Blechen - Klosterruine Oybin Carl Blechen - Turmruine mit Drachen

Carl Gustav Carus

Carl Gustav Carus - Woman on the Balcony

Carl Spitzweg

Carl Spitzweg - Drachensteigen Carl Spitzweg - Wirtshaus am See