This page lists the core pieces of software that I have substantially contributed to, as well as other (often smaller) contributions to other open-source projects.
Core Software (Research)
- Wrote most AI (search and learning) code.
- Substantial contributions to the core of Ludii’s engine.
- Profiling and optimising for speed and memory across the complete codebase.
- Set up and maintaining Travis CI.
- Set up and maintaining build scripts (Ant).
- Set up automated generation of Ludii Language Reference.
- Tech stack: Java, Python, Git, Travis CI, Ant, Slurm.
- Source code: https://github.com/Ludeme/Ludii/
- Main/sole developer for several subprojects:
Ludii + Polygames Bridge
- Main developer for the bridge.
- Tech stack: Java Native Interface (JNI), C++, CMake, Python, Java, Git, CircleCI.
- Source code: https://github.com/facebookarchive/Polygames/tree/main/src/games/ludii
MaastCTS2 (GVGAI Agent)
I developed the MaastCTS2 agent for General Video Game playing, based on the GVGAI framework. I worked on this for my M.Sc. thesis.
- First place in the 2016 Single-Player GVGAI competition track.
- Second place in the 2016 Two-Player GVGAI competition track.
- Tech stack: Java, Git.
- Source code: https://github.com/dennisSoemers/maastcts2
HTN Planner in Unreal Engine 4
I developed a Hierarchical Task Network (HTN) Planner in Unreal Engine 4. I worked on this for my research internship as a part of my Master in AI.
- Tech stack: Unreal Engine 4, C++, Git
- Source code: https://github.com/DennisSoemers/HTN-Planner/
Other Software (Non-research)
I developed a DLL plugin for The Elder Scrolls V: Skyrim, which exposes additional functionality to the game’s scripting language. This can be used by third-party modders for scripts in their mods. It is built on top of the Skyrim Script Extender and CommonLibSSE-NG, which have reverse-engineered substantial portions of the game’s executable.
- Tech stack: C++, CMake, vcpkg, Git
- Source code: https://github.com/DennisSoemers/PAPER
Other Open-Source Contributions
- Contributed a small change to the performance profile plotting code of rliable (Google Research) to add support for linestyles. (PR#8)
- Contributed a change to how entries are sorted in the legend of alpha-rank plots in OpenSpiel (DeepMind). (PR#112)
HuggingFace Deep RL Class
- Contributed minor clarifications, fixes, and suggestions to the HuggingFace Deep RL Class. (PR#62, Issue#66)
- Jupyter Notebook, Python
- Several contributions to the Multi-MAuS multi-modal authentication simulator.
- My contributions were primarily optimisations and feature engineering.