Louis Forster

Machine learning engineer. First-class MEng in Computer Science with Innovation from the University of Bristol, 2026.

  • Open-Jet

    A terminal coding agent that runs on your own GPU. It connects to Ollama, LM Studio or llama.cpp, or picks a model that fits your card and runs llama-server for you. Runs Qwen 27B at 70 tokens/s on an RTX 3090, up from 33, after tuning multi-token prediction, KV cache and GPU offload. Install with pip install open-jet.

  • Treyspace

    Excalidraw with an AI chat that can read your board. Shapes, arrows and positions are stored as a graph in HelixDB, and the model queries that graph through MCP tools, citing the nodes it used. Tested on 125 questions, including ones the board can’t answer, to measure citation accuracy and hallucination rate. Live at treyspace.app; the SDK is on GitHub.

  • RV Chess

    Free chess game review at rvchess.com. Change chess.com to rvchess.com in any game URL, or paste a PGN. Stockfish 18 runs in your browser, analysing several positions at once, and each move is graded by how much it lowered your chance of winning.

  • DialectGuessr

    A dialect survey at dialectguessr.com. Answer questions about the words and pronunciation you use, pin the town you grew up in, and see which region you match. dialectguessr.com/guessr is a five-round game: read how someone speaks, then pin where they’re from.

  • NYC Taxi Demand Forecasting

    Predicts hourly taxi demand for each New York taxi zone with PDFormer, a spatio-temporal transformer. The zone graph is built from the city’s zone map, linking zones that share a border and weighting by distance. Trained in PyTorch on 29.6M trips, turned into 4.6M zone-hour rows.

Research

TempRetinex

IEEE ICME 2026, second author. Y. Li, L. Forster, D. Bull, N. Anantrasirichai.

Brightens low-light video without paired training data. Done as a research intern at the Bristol Vision Institute: I rebuilt the recurrent PyTorch pipeline to warp frames in both directions, check forward and backward optical flow against each other, and mask occluded pixels. I also fine-tuned RAFT and DPFlow on MPI Sintel with added noise, trained on A100s, and got results above the previous baselines.

arXiv · Code

louisforster64@gmail.com