https://observablehq.com/d/c8fafa2b34282fb4 retrofitted an observable demo that did a neat trick with generating isolines to accept arbitrary geojson files--it's hella slow but I think it will make for some nice plotter drawings. this one is probably going to be a little gift for a friend who just had a kid whose middle name is, I am serious, California
https://observablehq.com/@lifewinning/cleaned-up-hillshade-generator sort of a hack but here is the cross-hatched hillshade map visualizations with cross-hatch bodies of water--because of the particular complexity of the river I'm using as an example I tesselate the water polygons but in theory you might not have to for a basic shoreline or something. Also yes, it loads super-slow sorry