Closed gingerbeardman closed 3 years ago
Thank you for this! A kind soul (isachs@) reached out to Craig Hickman about the 3d brush tool and he responded back with this:
"I didn’t know about this. It’s an interesting implementation. The line he has questions about is simply two lines drawn at the same time. One solid on the bottom and a line with a 50% halftone pattern on the top. The first version of Kid Pix was written for the original Macintosh one bit graphics."
I'll keep noodling on it too. Worst comes to worst, the freeware/public domain version of KidPix is available here: http://cd.textfiles.com/garbo/MAC/GRAPHICS/ and we can reverse engineer that.
So I was right! That's good to know.
That said, neither Craig or myself have the exact details just yet. So close!
I'll keep thinking about it.
edit: have also asked over at Macintosh Garden to see if anybody fancies reverse engineering it.
reverse engineered the public domain version a bit, and i think it goes like this:
while mouse held down:
(old_x, old_y)
to (new_x-1, new_y-1)
(old_x, old_y)
to (new_x-2, new_y-2)
(old_x, old_y) = (new_x, new_y)
Wow! Thanks @ubuntor for your RE work on this.
I'm amazed that got very close to how it works just by eyeballing.
Thinking about it, the 2x2 checkerboard is what affects the apparent "width" of the dithered stroke and it differing by orientation. Two corners will be white and two will be black! Tada!
@ubuntor Huge thank you for digging this out. After giving it a try and not getting it to replicate, I figured out why both @gingerbeardman and I went down the wrong path (my guess too was that there was some implementation detail factoring in deltas or direction).
Turns out I was confusing myself with the velocity of the brush! It's an implementation detail that in the OG version the direction of the strokes causes previous renderings to stomp on each other! That's a huge part of the effect! If you increase the speed and try all the different directions, orientations, the dithered 2nd line shows up! 😂
See towards end of video here: https://user-images.githubusercontent.com/291215/129132915-67a5e714-137b-455f-8fa9-78e4ff086246.mov
Rough ballpark in codepen:
Thanks @gingerbeardman @ubuntor ! I'll try to work on a release this weekend and get a bunch of other fixes out too.
Thanks all! To be deployed shortly. Variety of "halftones" behind the usual modifier keys.
Your sample image
It seems to me that this is drawing two strokes at once.
More Examples
Here are two ovals:
These were drawn starting/ending at the 12 o'clock position, but the result is the same regardless of starting/ending position.
Notes
Here are some horizontal and vertical lines:
Here are some diagonal lines:
Notes
A reproduction of your ornate shape:
My educated guess
Here's how I think it does it:
Size of dither stroke
But from what default values? And by what factor?
I'd have to experiment with code to figure out the details.