Hey there!
I'm Tom Niget (pronounced knee-jay), I'm 20, living in France and currently studying for an engineering degree in Computer Science at the Sophia Antipolis engineering graduate school (Polytech Nice).
Throughout the years, I've wandered in many areas of the world of computers; from budgeting software to disk management utilities, from real-time image processing to logic programming, from type theory to digital circuits. I've written programming languages, a Python IDE, a game for TI-84 calculators, low-level drivers for a managed kernel, and run Rust code on logic circuits.
I won first place in a European CTF competition with some friends while in high school, my work has been featured in a CS teachers journal (in French) and a Kotaku article, and I've front-paged /r/programming with a cursed Rust crate.
Best friends
Education
- [2020; 2023] Engineering Degree in Computer Science, Polytech Nice
- [2018; 2020] Preparatory class for Engineering Schools, Polytech Annecy
Projects
Author
Current
- [2023; now)
physics_rust - Algodoo clone using the Bevy engine/ECS system and the Rapier physics engine (more or less another attempt at doing what phytestcs was supposed to be, but this time I'm willing to admit that I'm not smart enough to write a proper physics engine)
Past
- 2022
security-iot-notre-projet - JavaCard applet for storing an RSA keypair and signing stuff with it, with a Python client and REPL
- 2022
usbrawmap - USB scancode mapper / driver for old nonstandard keyboards
- 2022
hm-infer-rs - Hindley-Milner type inference for Scheme, in Rust; with REPL
- 2022
hm-infer-cs - Hindley-Milner type inference for Scheme, in C#
- 2022
hm-infer-scheme - Hindley-Milner type inference for Scheme, in Scheme
- [2021; 2023]
inline-vbs - Embed VBScript (and JScript, Ruby, Perl, ...) code seamlessly inside Rust using the Active Scripting COM APIs, blog post here
- 2022
embed-c - Embed C code at compile time inside Rust using C2Rust, blog post here
- 2022
WordleCE - Wordle implementation on the TI CE calculator family
- 2022
parm_extended - ARM CPU implemented from scratch in logic circuits on Digital; Rust standard library and build toolchain with real programs running on it (Web server, Scheme REPL, VT100 emulator), blog post here
- 2021
si4-s8-options - school courses choice solver
- [2021; 2022]
graphrust - GPU-accelerated large graph (>1M nodes) viewer for a web scraping project
- 2021
red_blue_graph_solver - algorithmic analysis of the "red-blue" graph problem related to connectivity inference
- 2021
logisim-connectfour - Connect Four implemented as a logic circuit
- 2021
logisim-pong - Pong implemented as a logic circuit
- 2021
FastMark - fast, efficient watermarking tool
- 2021
soyouz - school project / boat and sailor control code for a pirate battleship game + 2D/3D game simulator
- 2021
ps6 - school project / quiz web-app with an emphasis on accessibility and usability
- 2020
logic - symbolic first-order predicate logic expression manipulation tools
- 2020
takenoko - school project / "Takenoko" board game, AI players
- 2020
sudoku - sudoku solver using a backtracking algorithm
- [2020; 2021]
phytestcs - simple, scriptable physics engine
- [2019; 2020]
polytheque - blog / article system mainly used for hosting CS lessons, tutorials and learning resources for my classmates
- [2018; 2019]
tpepeip1 - school research project / measuring heart rate from a live webcam video stream, using OpenCV
- [2018; 2020]
unidos - userland MS-DOS emulator based on Unicorn engine, forked from original
- [2018; 2019]
Turing - pseucodode / Python IDE made for teaching and beginners, featured on EPI (French CS/IT teachers association), available from Ubuntu and Debian package repositories
- [2017; 2021]
TOMB5 - Tomb Raider: Chronicles disassembly and decompilation (x86, MIPS) project, featured on Kotaku
- 2016
GestionFichiersEleves - small utility developed for my high school; automatically computes what textbooks a student needs based on what they're majoring in
- [2016; 2021]
USBFastBoot - start a VM on an ISO file or USB drive from the context menu
- [2015; 2017]
Hassium - object-oriented scripting language
- [2015; 2021]
SharpBoot - multiboot CD / USB creation tool, similar to XBoot or YUMI, featured on CNET
- [2014; 2015]
IMPression - math and numeric algorithms library with a parser and WPF user interface including 2D/3D plotting features
- 2014
SharpRenamer - basic batch file renaming tool
- 2014
SharpSweeper - minesweeper clone
- 2014
RegistryFS - the Windows Registry as a Dokan userspace FS
- [2014; 2015]
CrediNET - personal budgeting app
- 2013
Split# Network Toolkit - prototype of a web server for a prototype of a programming language
- 2010
ZBiblio - software for managing collections of movies
- 2010
mdi-notepad - simple MDI notepad
Contributor
Current
- 2022
cargo-breaking - cargo command for automatically detecting breaking changes between versions of a project
- 2022
restest - declarative REST API testing utilities
- [2020; now)
Logisim-evolution (maintainer) - digital logic circuit design and simulation tool
- helped with huge refactors and modernization of legacy code
- wrote the Buzzer component and its sound synthesis module, supporting fully customizable different waveform types
- [2017; now) TRWiki / TRosettaStone3 (maintainer for various community projects) - Wiki / knowledge base about the classic Tomb Raider games series from 1996-2000
- converted the old source document to Wiki format
- catalogued hundreds of items from the games
- helped document various file formats