Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Toodle.Studio is an art playground with Lisp and turtles (toodle.studio)
167 points by ianthehenry on Feb 13, 2023 | hide | past | favorite | 19 comments


This is delightful! Enough so that I'm contemplating building an Emacs with the Webkit widget integration, just so that I can play with it in a more comfortable Lisp environment. Thanks for brightening my Sunday evening!


  # Your program will be compiled as you
  # type, but it will not start running
  # until you press cmd-enter or
  # ctrl-enter, depending on how much
  # your computer cost.
How cute;-)...


Awesome! Real throwback to my first programming class; using turtles to draw stuff in GIMP using Scheme.


That was your first programming class? That's actually a pretty amazing idea. I think many people's first exposure to programming is something low-level on the command line (printing like "hello world" then digging around with file I/O, network and other OS stuff) or special-purpose and graphical (making a little square or something in Logo) - doing the graphics stuff with a general-purpose language probably involves pulling in external dependencies or learning a simple image format like ppm/pgm.

Introducing a powerful language like scheme, having a graphical output and planting the idea that students should hunt around for ways to integrate with or otherwise poke at existing applications is smart.


How can I not click on a link about lisp and turtles?

What a cool project, thanks so much for putting it together.


The default size is 512x512 how can i change it?

edit: just changing the values on the canvas tag in inspect element worked!


Very cool! Logo + processing.js in Lisp. I love that all the demos are inspired by generative art.


Actually it is written in Janet programming language.


Janet is a lisp, though.


But that does not mean that the code is compatible to Lisp. To mention that it is written in Lisp is mostly meaningless, since the wider Lisp family has 100 incompatible languages.

Try to run it in Emacs Lisp.

Thus it makes sense to mention in what actual programming language it is written in.


You're being needlessly pedantic here - especially when, despite never having seen Janet before, I was immediately able to use it at a high level of fluency thanks to long prior experience with Elisp and CL.

It's not wrong to say that something written in a Lisp is written "in Lisp". It's less than maximally precise, but people who are interested in Lisp will understand that "which Lisp?" is a question of import here. People who are not yet interested in Lisp, on the other hand, could well see this sort of pettifogging by someone clearly invested in it as a reason to avoid becoming more so.

I think that'd be a shame, because learning to understand the concepts that underpin Lisps has informed my approach to my work, even in other languages, and just generally made me a better programmer; I think it's good for just about anyone to have that experience in some degree. So I think it's worth not representing the language family or the community around it in ways that make it less likely more people will decide to take an interest.

Besides, Lisp can be a lot of fun! As indeed it is here. So, y'know. Maybe it's worth being less concerned over how people talk about it, and more glad they find it worth the time to talk about at all.


You're overgeneralizing your own experience. Janet claims to be a lisp-like language without lisp-like lists.

> So I think it's worth not representing the language family or the community around it in ways that make it less likely more people will decide to take an interest.

People are not dumb. Tell them what it is, not a marketing label.


So I understand that in some contexts it's important to specify that, for example, you've written a library for "Common Lisp" rather than just "Lisp". Here the original commenter is clearly just happy they can use a lisp for this task, and they got a snippy and slightly pedantic response that likely thousands of HNers are now reading.

So the top-level comment made me think "cool I should return to Lisp and hack something fun together" and the reply made me think "ah lispers can be tribal and petty towards newbies". It's fair enough if that's true - I don't know what value me individually doodling a few things can bring to a community overall.


There are literally zillions of programming language for that task.

Give the actual language, here used, some credit, instead of trying to needlessly advertize Lisp.


It's really cool.

Sorry for the ignorance, but how you run Janet on the browser?


I don't think that's ignorance :)

Embedding Janet in the browser is hard! My real motivation for making this website was to have a simple example to point to of how to do it. Short answer: Emscripten + WebAssembly. Long answer: https://github.com/ianthehenry/toodle.studio

Specifically I think these are the interesting bits:

https://github.com/ianthehenry/toodle.studio/blob/master/bui... https://github.com/ianthehenry/toodle.studio/blob/master/src...


Awesome project!

I'll steal some of the ideas for my lambda.quest if you don't mind :)


Wonderful!


I wonder how inaccessible the functional/pure version would be




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: