This seems like one for y'all…
I'm sure you've seen “Schotter”, by Georg Nees. I found almost all the source code for the drawing here:
https://www.slideshare.net/slideshow/kunst-und-computer/67510183#16
How would I go about tracking down the implementation of the J1 and J2 random generator functions? I'd like to recreate it exactly, just for fun.
@textfiles @savetz It’s totally normal that I just spent €30 on a PDF of Georg Nees’ doctoral dissertation from 1969 and am currently pasting screenshots of sections of it into google translate because I can’t understand German, so that I can try to figure out the random generator procedure he used and replicate his "Schotter" (aka "Gravel" aka “Cubic Disarray”) plot exactly, right? Right?
@textfiles @savetz Ok, so I have the random number routines, working as described (example plot of random length lines matches). Blog post with excerpts and translations coming soon, but tl;dr multiply by five and mod by 2^31. However, of the six “I use these seeds all the time for everything” seeds mentioned, none match
Next up: rewriting in Go for speed, and checking 2-4 billion seeds each for rotation and displacement… hopefully he didn’t also modify the multiplier to something else…
@textfiles @savetz Ok, after annotating the plot for obvious left-right rotations and again for left-right shifts, and writing a Go program to check all the seeds, and spending literally hours trying all kinds of silly variations before realizing I'd transcribed my shifts using "R" and "L" instead of "R" and "B" (), I can faithfully reproduce the original plot!
@textfiles @zellyn Totally. Normal.
@zellyn @textfiles @savetz This is the way.
@textfiles @zellyn congrats! Well done! Will you upload the thesis to Internet archive?
@savetz @textfiles @zellyn I hope so! I'm interested to read the details
@zellyn does that slideshare show someone managed to recreate it in Scratch! That's awesome
@Dan Yeah, I was hoping I could deduce the random number algorithm from that, but no dice.