site banner

Tinker Tuesday for April 7th, 2026

This thread is for anyone working on personal projects to share their progress, and hold themselves somewhat accountable to a group of peers.

Post your project, your progress from last week, and what you hope to accomplish this week.

If you want to be pinged with a reminder asking about your project, let me know, and I'll harass you each week until you cancel the service.

3
Jump in the discussion.

No email address required.

Current project is a Holdem (poker) website, multiplayer or single-player with bots, implemented in Elixir, using Event Sourcing and CQRS architecture. Nearly feature complete for a first draft, I am on the cusp of making it available for people to bang on.

Briefly:

  • Play chips, no money
  • No-friction profile and wallet tracking (no passwords: cookies and tokens)
  • High-fidelity hand history, for real-time or post-hoc analysis
  • The bots you play against can also advise your play

Rationale:

I was around for poker boom 1.0, with Chris Moneymaker winning the World Series of Poker, back when it was hosted at Binion's, in the Rounders era. We are now in the second wave, GTO, Game Theory Optimal. A completely different meta with different terminology has evolved in the last 10-15 years. I got one goshdarn Doug Polk video in my viewing history, and now I'm nerdsniped into learning about GTO poker, having played maybe 3 poker games in the last 20 years.

So I needed to get my reps in, and I needed advice. Possibly from LLMs. Who could watch my own gameplay and decision making and tell me about my decision, additionally providing new-meta (and old-meta) analysis that should feed better decisions. And I need a lot of reps. So what I have really built is a poker trainer, disguised as free-to-play multiplayer site. I just want to be placed into a realistic situation, with limited information, and train myself to make good decisions.

The crux of this is a so-called "hand history" format that is easy to read and follow, yet informationally complete. I have not found any free poker site that provides a useful hand history for this. So I'm building one. I have a freemium revenue model banging around the back of my brain somewhere.

I haven't posted much on account of working 9-10 hour days and commuting 2-3 hours on top of it.

However I finally have an excuse to learn OpenGL for work. Every other time I've tried to learn OpenGL the last 20 years, work has reared it's ugly head and taken up too much of my headspace to make much progress. But not this time, oh no, this time work has me utterly immersed in it.

It's actually a funny story, but I probably shouldn't divulge it on a public forum. Alas.

Still not much progress on the background generation. Mostly I've been goofing around with benchmarks, trying to see if the previous changes did actually boost performance. Indeed I'm now able to run the simulation with +/- 640K monsters at reasonable framerates (for as long as the laptop doesn't get hot), whereas previously I could only reach +/- 250K. However, this only works when I turn off the bullet simulation. It's not surprising it turned out to be a bottleneck - I basically copy pasted the monster simulation code, just to have something working for now, and I had the thought I'm doing the collision detection the wrong way around:

  • Currently for each bullet, I check if it hits any monster. There already is a spatial sorting mechanism for the monsters, so it's relatively easy to look up the ones in the neighborhood of a projectile. However, due to the nature of how they move (in a straight line, and separated from each other), each projectile is likely to have a different neighborhood, and this will cause thread divergence
  • Instead, I think I should add a similar sorting mechanism for the bullets, and check collisions from each monster to each bullet in the neighborhood. Monsters are more likely to be clumped together, so their neighborhood will be the same, and they will be doing the same lookups, and not cause any divergence. Hopefully... in theory...

That said, I'll leave that alone for now, and get back to the background generation thing.

How have you been doing @Southkraut?

I have a ballistics library which includes tons of real-world cartridges and is primarily concerned with estimating muzzle velocity for arbitrary barrel lengths. This would be most applicable to a a sim-style shooter like Tarkov or milsim stuff that wants real world cartridges with real world data. I have the basics for POI relative to POA but zero collision detection with terrain or objects. That much is technically out of scope for my project, which is more of a ballistics database than any sort of engine. But designed to hook up to an engine.

I disliked my workflow.

Make changes in C++, build the editor, launch the editor, then launch the game from the editor. So many steps. Lots of waiting, only to make one more click.

So I told my copilot (GPT 5.4 in Agent mode in Jetbrains Rider) about it, and it wrote a script that it now executes after every prompt (or at least the ones that do more than refactor) to build, launch and start everything on its own, and even analyze any crashes that might occur on the way. This resolved a major pain point of Unreal development for me, so I'm fairly happy with it.

Blastbeats get stale unless used sparingly. For album #2, I've had lots of ideas for things I want to do, and early on I decided that I want the first song proper to feature blastbeats right out of the gate, to grab the listener's attention. Then the next three or four songs will be slow (or at most mid-tempo), followed by a song which starts off slow but steadily builds to an explosive blastbeat at the end. This will either be the second-last song, followed by another slow song, or it'll be the last song and the blastbeat will be the last thing you hear before the album ends.

I haven't started writing this album in earnest, but yesterday I thought of a riff which will be the riff playing over the second instance of blastbeats. It's gonna cook.

In January I recorded a guitar arrangement of a piece of modern classical music, but never got around to mixing it. Going to start mixing this evening.