I've been interested in explorable explanations for a while. I'm also intimidated by them. Creating one explorable explanation is as difficult as creating an entire website
I have noticed that D3 is often used by the authors at Distill for their explorable explanations.
I have been reluctant to use D3 in the past because of its large codebase, but D3's recent move to ES6 as well as FiveThirtyEight's pre-rendering libraries alleviate some of my concerns.
My current idea is to make a visual programming language for D3. This is a project I am pursuing for its utility in my own life.
Most visual programming languages are block-based, but I am not a fan of that concept.
I am interested in enabling enjoyable and casual programming experiences. Subjectively, I feel that block-based visual programming languages are inadequate when it comes to enjoyable, casual programming.
I feel that block-based languages do not encourage autotelic creativity - that is, creativity for its own sake. This is partially based on my experience seeing how children don't actually enjoy using Scratch.
Instead of pursuing block-based visual programming, I might attempt something more ambitious:
People who are not programmers play programming games for fun. What if programming were more like a video game?
Following this line of thought, I initially researched the programming games made by Zachtronics but I was disappointed to see that the games contain puzzles which players need to solve. I want to make something that is similar to a game but more open-ended, allowing users to write code that fulfills any purpose.
Looking at game screenshots, I've decided to take inspiration from Cities: Skylines - Playstation 4 Edition .
I still think this is ... quite an ambitious project, so I'm probably going to continue looking for examples of end-user programming, visual programming, and programming games on are.na.