Tavis Rudd

Tavis Rudd

@tavis.damnsimple.com

Geek in Vancouver. Sometimes CTO / software architect. Obsessive reader. Always curious! (was @tavisrudd elsewhere)

194 followers244 following457 posts

My new paper on a geometry problem open since the 1970s: can a cubic threefold (a 3D geometric object defined by a cubic equation) become "simple" if you give it an extra dimension? No. Even after adding that extra dimension, its underlying algebraic complexity stubbornly survives.

This was a lot of work with many false starts. I finally got to use the fancy category theory I learned through Haskell for some real math. It hasn't been fully peer reviewed yet but I'm finally confident enough to not doubt it. #math

My new paper on a geometry problem open since the 1970s: can a cubic threefold (a 3D geometric object defined by a cubic equation) become "simple" if you give it an extra dimension? No. Even after adding that extra dimension, its underlying algebraic complexity stubbornly survives.

View full thread

... My naive questions and challenges seemed to help the models push past their natural stopping points and not cheat. /goal is dangerous for this type of work and I've avoided it.

I've reached out to a bunch of specialists whose work I've cited and extended and expect at least part of this to be classical work rediscovered or just wrong in various ways. I hope what survives is interesting.

They ask two related questions: how much structure can be recovered after most of the original information has been discarded, and which obstructions persist under operations, such as stabilization, that might be expected to weaken them?

This was not zero-shot! I've been in the loop over 1,552 codex and claude code sessions choosing and reframing problems, steering exploration and later proof & manuscript development, challenging arguments, and designing verification gates. ...

Fable in its first 200K tokens shattered the record Opus and I had been stuck at for days on Non-Attacking Queens 16x16 solves. -38% wall time, -37.6 % nodes. 14.6 seconds. It moved like a killer. bsky.app/profile/tavi...

Tavis Rudd@tavis.damnsimple.com

I've been obsessed with coding fast adversarial game tree solvers this week. Warmed up on Othello and then wrote dozens of increasingly fast solvers for Non-Attacking Queens. Record 16x16 in 24sec. This needs to be verified but here is the first ever 18x18 board solve.

I've been obsessed with coding fast adversarial game tree solvers this week. Warmed up on Othello and then wrote dozens of increasingly fast solvers for Non-Attacking Queens. Record 16x16 in 24sec. This needs to be verified but here is the first ever 18x18 board solve.

View full thread

n=18 result is legit. verified via: • 2 independent solvers: same verdict, same move (I9), byte-identical 15-move PV • Lean-checked game recurrence • oracle differential, 3,400 subpositions • reproduces known n≤16 results (Jenrich) • rules-only certifier, zero solver code

Since Claude Code and Codex came out all my hobbies have been geeky versions of "Faster, Better, Stronger". I need to step away from this addiction and get back to making my body that. bsky.app/profile/tavi... bsky.app/profile/tavi... bsky.app/profile/tavi...

Tavis Rudd@tavis.damnsimple.com

I've been obsessed with coding fast adversarial game tree solvers this week. Warmed up on Othello and then wrote dozens of increasingly fast solvers for Non-Attacking Queens. Record 16x16 in 24sec. This needs to be verified but here is the first ever 18x18 board solve.

I've been obsessed with coding fast adversarial game tree solvers this week. Warmed up on Othello and then wrote dozens of increasingly fast solvers for Non-Attacking Queens. Record 16x16 in 24sec. This needs to be verified but here is the first ever 18x18 board solve.

View full thread

The final used Normal-play minimax with ab pruning Node Kayles reduction D₄ group actions Canonicalization Graph isomorphism Dynamic programming Transposition DAGs Dense endgame tables Bitset set algebra Cutoff-rank statistics And a bunch of asm micro optimized kernels for various hotspots

Consumer hardware: 12 core (24 hardware threads), 26GB ram, ryzen 5. Geekom A9 Max. Rust code leveraging all the hardware optimizations it can, following "Tiger Style" perf rules. DRAM latency on the Transposition Table is the limiter not core count or speed. Faster memory would improve it further

I've been obsessed with coding fast adversarial game tree solvers this week. Warmed up on Othello and then wrote dozens of increasingly fast solvers for Non-Attacking Queens. Record 16x16 in 24sec. This needs to be verified but here is the first ever 18x18 board solve.

View full thread

My 1st solver was a parallel depth first search using D4 symmetry fold, Transposition Table, minimax + alpha-beta pruning, and Younger Brothers Wait parallelism.

In English: boards into occlusion maps; folded rotations/reflections; cache repeated positions; packed into tiny cache entries; pre-solved small endgames; CPU bit tricks; tried most-forcing moves first; cache check before search; parallelized roots; tuned with detailed search telemetry.

I've been obsessed with coding fast adversarial game tree solvers this week. Warmed up on Othello and then wrote dozens of increasingly fast solvers for Non-Attacking Queens. Record 16x16 in 24sec. This needs to be verified but here is the first ever 18x18 board solve.

The charts above are absolute and relative scale progress on wall time, search node count, and ns/node. The algorithmic improvements in node pruning dominate.

In the month since I posted this latency chart for my search engine project bsky.app/profile/tavi... I've managed to eek out another 57x speedup on the p99 -> 12µs. 450x faster than the original chart.

Tavis Rudd@tavis.damnsimple.com

Been going "tiger style" with perf optimizations. 10x speedup between first image and second/third. Now p50@ 26µs p95@ 271µs p99@ 695µs :)

View full thread
View full thread

"As I'd tell my students: if you find yourself writing an evaluator for a tree-structured AST with variable binding, conditionals, iteration, and a module system — you've built a programming language. Own it."