Turtletoy
If you like this project, you may be interested in a similar project that I did a while back using using the turtle interpretation of grammars to represent connections between LEGO bricks:
https://github.com/jncraton/connectiongrammar
The "API" is admittedly quite poor currently, as I just quickly hacked this together on top of NLTK, but I was able to put together some fun results.
This reminds me of a story of how Logo was implemented on 8-bit microcomputers.
Leigh Klotz was the man who ported MIT Logo to the Apple ][ and then the Commodore 64. According to him βThe Commodore 64 CPU 6510 has a bidirectional parallel port at location 0 and 1, taking up 2 of the 256 "page zero" locations, which are the only ones you can indirect through. When I ported MIT Logo from the Apple II, there were lots of places that dereferenced nil without checking, and those caused crashes. Commodore gave me a chip they fabbed in qty 12 yield that brought out the I/D decide status as a pin, and we used a Nicolet-Paratronica logic analyzer to feed the address and data bus to a Pet running a BASIC disassembler. I could then set a breakpoint in-circuit to see the 256 instructions prior to or after the errant memory access, so I could go put on guard code...β
I got it from Jamie Zawinski's weblog. Be forewarned. Following the link from Hacker News will lead to an unsavory image. Just copy & paste it, instead.
https://www.jwz.org/blog/2018/11/weird-machines/#comment-192...
I'm seeing some really interesting JavaScript techniques in the turtlevm.js[1] source.
This line in particular stands out: const code = String(work).trim().split("{").slice(1).join("{").slice(0, - 1).trim().replace("/0/", _turtlevmapi).replace("/1/", strCode);
It looks like the author is injecting the turtle code written by the user into a "work" function that removes dangerous objects (XMLHttpRequest, WebSocket, etc).
Can someone with experience writing a VM in JS point to a good reference on the topic?
Go to this one [1], change the GEAR_NUM to like 30 and enjoy the rendering
Ahhh, love this site. I own an axidraw pen plotter, and because I'm feeling generous, I'll print every sketch made by people in this HN thread.
<3
Immediately took me back to Logo and 9 year old me trying to figure out how to move the turtle :) Great memories!
For anyone interested about this kind of things, I did something a bit similar for 3d voxel rendering: https://voxeltoy.com/, also inspired by shadertoy.
I have seen this site some days ago (reddit maybe?) and I really like the concept! The design is very clean!
One feature I'd like: A way to slow down the render so we can see the whole generation in slow-motion.
I am highly impressed that some of these actually implement wireframe hidden surface removal:
Not really in the true spirit of turtle (if it doesn't "go forward" I don't count it!), but I had to make this one based on the MAD computer program discussed here yesterday.
This reminded me of a physics toy I saw ~10 years ago where you would draw simple two-dimensional robots with legs and muscles, optimize their gait, and race them.
If only I could remember the name of it...
Reminds me of https://dwitter.net: you get 140 characters to animate an HTML canvas.
While TurtleToy is way more advanced, few years ago I built a small webapp that uses nested CSS to make recursive images: https://zetabee.com/weave/
Click [Help] button to get an idea of how it works. It was heavily inspired by Structure Synth but written from scratch to work with CSS3 in a modern browser.
This takes me back. I remember learning Logo at school when I was 10 or 11 and had a project to do using Logo. For some reason I couldn't make it into school for a few weeks, I'm not sure if I was ill or something else but was going to miss the project hand in date, so I wrote the code on paper while I was at home as I didn't have a Logo compiler or interpreter for my ZX Spectrum. My teacher put my code into the interpreter and it ended up looking exactly as I had expected. I think it was a tank and used procedures/functions which was above and beyond what we'd been taught.
Of course Logo wasn't the most complex language ever but I remember being pretty pleased with myself having written a computer program on a bit of paper and it doing exactly what I'd visualised it to do.
I am so glad this exists. Turtle Graphics remains the best way to teach so many fundamental concepts. From recursion to path finding.
One feature that I wish existed was library import. Or community accepted set of extension modules. An easy way to call polar coordinates, Spirographs, matrix transforms, etc.
Reminds me of Context Free Art https://www.contextfreeart.org/
They developed their own declarative language for generating art.
Some of them are super impressive. Well I mean full fledged 3d renderers
Is it possible to get vector files of some sort out of these? .SVG, .AI, .PDF, or something similar would be awesome.
Edit: I meant directly from the site. I could do it from my desktop using python.
PS, this is awesome!
These are great!
Also reminds me of the Forth Haiku Salon: https://forthsalon.appspot.com/
If you're into this, you might also be interested in robotic pen plotters. This article from last year kicked off a serious new hobby for me which combines code/art/robotics/etc and has been a ton of fun.
If you're into this kind of thing, I made a similar Turtle clone with a simpler syntax:
But I also like the approach here of using Turtle as a way to introduce JavaScript syntax. :)
So many memories of using a physical robot version of this at school. Good times.
I suggest adding this to the title: "Create your own generative art using a minimalistic Turtle graphics API."
undefined
I won my first (and only) programming contest in Logo. Fun to see the idea alive.
if you want an even more minimalist API you can try out lindenmoji:
Love this site well done. Concept and design is pretty nice.
This is basically Logo in Python. Looks like a good effort.
undefined