Consider the paintbrush: simple enough for a child, complex enough for an Old Master. That's what any artistic tool should strive for, and the art of programming deserves a tool that's more creative, more alive. Joy.js is a tool for making tools like that.
EASY & EXPRESSIVE With regular coding: tweak a number, compile, see the result seconds later, tweak again, repeat 'til bored. With Joy.js: change the code by clicking / dragging / hovering, and see the result immediately. This lets you improvize, and discover "happy little accidents"!
SEE WHOLE SYSTEMS No need to second-guess the program, to "play computer" in your head. If you want to understand what a system does, you can simply hover over the step numbers, and see the system build itself step by step.
SAVE & SHARE And finally, when you make a tool with Joy.js, your users will be able to save and share their work, and remix each others' creations! (Note for developers: Joy.js "saves data" in the URL itself... meaning, no need to set up a server or database!)
Here's some demos you can play with & "program"! (click to open ↓)
Are you a developer, and want to use Joy.js to make a playful, "programmable" tool? Check out this how-to guide:

JOY.js is open source / public domain. (get source)

It was made by Nicky Case, with the generous feedback and support of my fans on Patreon! (see full credits)

If you like the interactive stuff I make, feel free to throw monetary values at me on Patreon? <3