i've committed to a side project that includes some math, geometry, visual stuff, a* routing (it's a flowchart builder, don't get too excited, and i'm going to keep it private for a long time) and whew it is so good to handwrite some moderately-to-quite difficult code just for the heck of it and try to make everything nice and learn a lot in the process
programming can be fun (for a few hours on the weekends and mornings and evenings as long as you don't think about the outside world at all and stay focused and make some progress)
look, a* routing! it took me like maybe 6 hours to get all the other concepts right and then a half hour to implement routing. everything is always data structures
starting to take shape, integrated the official MTA line colors for lines today. still many many things to do 😂 🚇
the graph versus grid debate rages (in my head). this is structurally a graph with proper links and everything, not just relying on implicit 'neighbors'. but most of the things i want to do with it are grid-like, and i'm currently just using weights to make the lines avoid blocks rather than removing graph nodes. really want to slim down the graph and highlight good routes with skipped grid squares, but that's probably after everything else is done.

☑️ A* routing, MTA colors, sockets, draggable blocks

todo: edge directions, labels, resizable blocks, edges avoiding edges, custom waypoints, rounded corners

@tmcw hey, I'm somehow in the graph game these days, but just want to make the graphs. Did you come across ELK on your travels? Or any tips for nondeterministic state graphs? 😅
@douginamug yeah, elk is my favorite engine currently for this kind of graph - the js implementation is transpiled java which is a bummer but the quality of rendering is great. not sure about nondeterminstic though!

@tmcw you're talking about Elkjs? Transpiled means poor readability?

Yeah, I didn't do CompSci, so I'm likely talking things I don't understand, but it's mostly for me about having "decision diamonds" pseudostates... a detail

How are you running ELK, with cytoscape?

@douginamug I was using elk to do layout and display as SVG: https://observablehq.com/@tmcw/elk - haven't used it much since, though, new thing is from scratch. there are of course also graphviz options out there. graphviz & elk - both going to be bigger because they aren't written in js. in the rare case they have a bug, the stacktrace will be rough
Elk

A small render on top of Elkjs, a port of Eclipse’s graph rendering engine, that renders directly to SVG and bakes in a few opinions. It’s easy to change these opinions if you’d like - this is a work in progress and an editable notebook. Used for the Elk Edition of the Notebook Visualizer. Features Automatically finds a suitable width & height for children if you omit it. Includes IBM Plex for font niceness. Graphs are scrollable if they get too wide.

Observable