You are browsing as a guest. Sign up (or log in) to start making projects!

espees

@espees

Joined June 8th, 2026

  • 5Devlogs
  • 2Projects
  • 2Ships
  • 15Votes
YO whatsup
Ship Changes requested

I built Shoot, a browser-based FPS aim trainer with five modes (classic, precision, speed, reaction, and tracking), all running on plain HTML, CSS, and vanilla JS with no backend. The hardest part was keeping the game state, mode config, and UI in sync. A small typo in one config object won’t crash anything, it just quietly breaks a mode, like reaction mode never ending after fifteen hits. I’m proud that everything runs client-side with zero dependencies, including sound, which is synthesized live through the Web Audio API instead of loaded from files. To test it, just open index.html in a browser and try switching between modes. Personally the most fun is the tracking mode, so I would suggest you to try that out first!

  • 2 devlogs
  • 14h
Try project → See source code →
Open comments for this post

9h 3m 43s logged

Finished up the project today! The game now fully works as intended with the 5 different gamemodes. PB scores are also locally kept track of, and the settings + pause menus work now as well. The hardest part about building this was definitely keeping the game loop UI and mode config ALL in sync. Specifically, I completely dropped the rounds value for the reaction mode in the mode config, which made the reaction gamemode never end. It took me a few days to fix this on its own. Everything considered, this was a very fun project to build. I learnt a lot, had fun, and Im looking forward to hearing everyone’s opinions!

0
0
66
Open comments for this post

4h 46m 36s logged

SHOOT is an aim trainer game. So far, I have programmed the HTML and styled the CSS for all components besides the game screen, so I am basically done the UI!
My idea for the game is to have 5 modes:

  1. Classic: A regular aim trainer with single targets randomly spawning around the screen
  2. Precision: The targets get smaller to train accuracy better
  3. Speed: Targets spawn rapidly and randomly all around the screen, you have to be fast!
  4. Reaction: A total of 15 targets spawn one by one and you have to hit them as fast as you can. The end score is your average reaction time.
  5. Tracking: Targets move! This provides realistic practice for in game movements.
    I have attached what the UI looks like so far. Super excited to finish styling the game canvas + targets and actually make the game script to make it functional!
2
0
45
Open comments for this post

3h 4m 18s logged

I remodelled the entire UI! It has a new arcade based theme now, but everything else, including the model is still the same.

0
0
2
Ship Changes requested

I built MatchUp.AI, a World Cup 2026 match predictor that uses a Poisson regression model (trained in Python) to guess scorelines, with the math running fully in the browser, no server needed. The hardest part was getting the model to work smoothly in JavaScript and making the results easy to read. I’m proud that it’s fast, simple, and runs the real math live instead of just guessing. To test it, just pick two teams and see the predicted score. It should load instantly since everything runs locally.

  • 2 devlogs
  • 6h
Try project → See source code →
Open comments for this post

3h 2m 52s logged

Wrapped up the project today.
The highlight was finally getting the whole pipeline working from start to finish. train_v1.py trains a Poisson GLM on old match data, dumps the coefficients into model.js. app.js grabs those in the browser to generate live win/draw/loss odds and full score predictions. Seeing everything actually work together for the first time was such a good feeling. It wasn’t at all smooth, though. First, I made a stupid typo: I wrote factorials(k) instead of factorials[k]. That completely killed the predictor for a while. Once I fixed that, I found an even dumber bug. I’d been multiplying the home team’s Poisson probabilities by… the home team’s Poisson probabilities. So the model had basically spent the afternoon thinking every match was a team playing against its own clone. Then JavaScript decided it wanted to be funny. I used regular quotes instead of backticks in a few places, so instead of showing the actual values, my UI was proudly displaying stuff like ${pct}%. A lot of debugging, a few “how is this even happening?” moments, and way too many commits later, it’s finally done. The predictions make sense, the frontend actually shows legit numbers, and I can stop lying to myself that bugs are “features.”

0
0
1
Open comments for this post

2h 36m 56s logged

I am building a Poisson GLM model for predicting this FIFA world cup’s match outcomes! I’ve collected all the data I need, and the frontend’s finally alive (sort of). The dropdown menu, neutral venue toggle are up and rendering, and the loading screen for the entire results panel (expected goals, W/D/L bars, score matrix) works. I did spend a good chunk of my time convinced my CSS was cursed though. In the beginning stages of styling, no matter what I did, the web page didn’t change at all. Turns out I wrote style.css instead of styles.css when connecting it with my html, so the browser was just not loading any styles ever. Next up, app.js and model.js need to be coded. Right now the page is just a pretty shell with no logic behind it, so the dropdowns are sitting empty, and the results panel is stuck in the loading screen since there’s no data telling them what countries even exist!

0
0
1

Followers

Loading…