
Explorabl.es - rickdeveloper
https://explorabl.es
======
lukifer
Hah, was planning on linking to Nicky Case[0], but of course that's exactly
who's behind this! :D

Very exciting project. We're absolutely leaving "leaving money on the table"
by not leveraging the full power of the brain for education and reasoning
about complex systems. See also: Bret Victor's "Ladder of Abstraction" [1],
and Kevin Simler's "Going Critical" [2].

[0] [https://ncase.me/](https://ncase.me/)

[1]
[http://worrydream.com/LadderOfAbstraction/](http://worrydream.com/LadderOfAbstraction/)

[2] [https://meltingasphalt.com/going-
critical/](https://meltingasphalt.com/going-critical/)

~~~
ThouYS
Hadn’t heard of Case yet, but Bret Victor is an absolute visionary. His talks
“Media for Thinking the Unthinkable” [1] and “The Humane Representation of
Thought” [2] are eye-openers!

[1] [https://vimeo.com/67076984](https://vimeo.com/67076984)

[2] [https://vimeo.com/115154289](https://vimeo.com/115154289)

------
spyckie2
What would make explorables really take off is a killer framework to make
building them easier, ala Ruby on Rails.

I know ncase has built some frameworks and I applaud his work, but this space
just needs a lot more investment.

Here's what I think the killer framework will do really, really well: (Note
this is VERY rough, it comes from spending 20 minutes trying to create an
explorable a long time ago and realizing that the tooling just isn't right)

\- 1) Turn the act of coding a model into mostly verbal reasoning by having a
great framework language / API. Rails actually did this, turning the entire
building a website into composing english. It greatly reduced the distance
between the concepts / app that you were building and how you went about
building it - i.e. Model has_many :users

\- 2) A standardized convention on inputs, outputs, relationships, defaults,
and time (step functions).

\- 2b) A standardized convention of defining one unit, populations and groups
of units within populations

\- 3) Automated scaffolding to display raw data, with add-on libraries to
easily scaffold formatted or visual data.

\- 3b) Automated scaffold to visualize a unit, a population, groups within
populations, and units within groups (a scaffold of a population is like table
rows)

\- 3c) Language / api should also make it dead simple and intuitive to control
converting from numerical data to textual data. i.e. if you are modeling
stress, what does 60 points in stress mean?

I think something inspired by ActiveModel (my Rails bias is showing) would be
a great way to define the above since defining a strong way to define your
data is also how you would get automatic scaffolding language and high level
functions on top of it.

\- 4) A dead simple way to display and embed models anywhere. 1 line of
javascript or a 1 line import and you can plug it into jekyll, hugo, (any
static site generator, really)

\- 5) A killer tutorial.

~~~
paulgb
I haven't used it myself, but I wonder if Idyll comes close? [https://idyll-
lang.org/](https://idyll-lang.org/)

~~~
spyckie2
unfortunately, not really. The language you have to speak is still in
variables, buttons and code.

I'd love to be able to write in a way that feels more like documenting models
rather than writing code. Admittedly this is a really spoiled point of view
since ideas are cheap but execution is hard.

A quick example is as follows:

Persons have stress level from 0-100, start with random stress, and belong in
the following environment conditions:

Normal: Stress + 0 / year

Low Income: Stress + 5 / year

High Income: Stress - 5 / year

Change functions:

Every year, 0-3% persons change from low income to normal income

0-1% of persons change from normal income to high income

Population has 100 persons

Groups:

stress level > 50 is "high risk of heart attack"

stress level < 20 is "low risk of heart attack"

This kind of definition should be enough to chart out # of people in the high
risk group over a period time.

What I imagine is writing more or less the above as psuedocode and then a
framework to automatically scaffold a basic data view and controls for time /
data manipulation.

 _edit_ i took a further look at idyll, and this language can probably be
built on top of idyll.

~~~
spyckie2
psuedocode here
[https://gist.github.com/lifedispenser/3a9a3433551a324097829e...](https://gist.github.com/lifedispenser/3a9a3433551a324097829e9bedc1132a)

------
dev_throw
The notion that only serious work can educate someone is something I hope
future educators can dispel and build engaging platforms (edutainment).

I learned about game theory, communication, teamwork, strategy and business
from gaming and sports. These topics would have been quite dry to learn in a
sterile educational setting. In the same vein, I hope we move to a more
experiment/physical based learning of science and technology over rote
learning, since a lot of learners hugely benefit from that.

I commend you on what you're working towards!

~~~
repsilat
> _The notion that only serious work can educate someone is something I hope
> future educators can dispel_

This sounds super weird to me. I thought rote-learning was totally out of
fashion, and now under-practiced because everyone thinks that learning should
always be fun.

I don't know whether this is regional variation, age differences or political
differences. And I there's probably some middle-ground: maybe you have to
memorise your times-tables, but maybe it doesn't need to be boring.

~~~
RookyNumbas
It's a tough balance. My partner teaches grade 2. They focus on play and
exploratory based learning. Parents are furious that their kids aren't instead
memorizing times-tables.

~~~
gfxgirl
There is evidence that play and exploratory learning are not actually a good
way to teach

[https://www.youtube.com/watch?v=g1ib43q3uXQ](https://www.youtube.com/watch?v=g1ib43q3uXQ)

------
AKluge
I also work in this space, producing interactive content for physics
education. I have an evolving framework for visualizing vector fields, such as
electric fields. Example content includes an explanation of Gauss’s law
[http://www.vizitsolutions.com/portfolio/gausslaw/](http://www.vizitsolutions.com/portfolio/gausslaw/),
where the graphs, texts, and equations are interactive, and changes to any of
them are reflected in all of them.

A truly general framework will be tough, because of the different nature of
different types of content. For example, even within physics I am working on a
quantum simulation, where the simulation and interactions with it will be very
different from the electric field examples. Perhaps for some very general
interactions, eventually… I will definitely be evolving in that direction –
for example making the electric field models easier to edit.

I have advocated this approach at a number of conferences, but the reception
from companies has been lukewarm at best. They are able to sell content with
limited interactivity, and the cost for this is comparatively high.

All of this content is founded in correctness, and in research proven
instructional design principles, which do include gamification.

BTW, all of the code is openly licensed, and I encourage its reuse and solicit
feedback on functionality and future directions.

~~~
TuringTest
_> A truly general framework will be tough, because of the different nature of
different types of content._

I've been thinking for years what it would take to create a general framework
like that, and I think we're in the middle of a language revolution like the
one in the 80's, that will end-up creating such new system; all the pieces are
in place, it just need one project to integrate the best parts and take off.

My ideal solution would integrate:

\- the programming model of a spreadsheet (reactive functional programming),
useful for building models;

\- interactive graphics like those in explorable explanations, integrated with
the data models stored in the spreadsheet;

\- a good templating library with a visual designer and auto-generated markup,
for building visual components based on the models;

\- and an outliner storage model with "external reference" transcluded nodes,
to build and evolve projects from the tool itself, without an external IDE.

Several companies are very close, but none of them include all these pieces,
as some of them come from programming language design and others from user
interaction; right now, only a very senior interdisciplinary team would know
how to integrate all them in a single unified approach.

------
jv22222
This explorable for spaced repetition learning is awesome:

[https://ncase.me/remember/](https://ncase.me/remember/)

I can already see explorables is one of the very rare content sites that I
will bookmark and go back to.

------
MasterPI
3Blue1Brown is among the supporters on Patreon which I think is another big
recognition for the work of the creator(s).

[https://github.com/explorableexplanations/explorableexplanat...](https://github.com/explorableexplanations/explorableexplanations.github.io#explorable-
explanations)

------
jwilber
Not as explorable per se, but here’s an interactive explanation I made for my
favorite (and widely useful) method in statistics:

[https://www.jwilber.me/permutationtest/](https://www.jwilber.me/permutationtest/)

~~~
hencq
Great explanation! I'm now tempted to try this out myself for some
experiments. I wish my statistics book in college used these kind of
interactive explanations.

------
TruthSHIFT
There's so much content there. But, this explanation of particles is pretty
great:

[https://manytinythings.github.io/](https://manytinythings.github.io/)

~~~
truebosko
Love the language here. Even see this as a meaningful way to explain concepts
to children.

------
globular-toast
> Lion cubs play-fight to learn social skills. Rats play to learn emotional
> skills. Monkeys play to learn cognitive skills. And yet, in the last
> century, we humans have convinced ourselves that play is useless, and
> learning is supposed to be boring.

What a load of rubbish. Human children play to learn just like our animal
cousins. But after language acquisition we have a far more efficient tool at
our disposal. Am I supposed to learn that electricity is dangerous by playing
with a car battery?

That's not to say that this isn't good and adults can't learn some things more
effectively by interaction, but, please, let's not play down the importance of
language when it comes to adult learning.

------
michaelmior
I haven't put any effort into adding explanations of anything, but looking at
the one titled "Basic Beats" reminded me of this little thing I built a while
back for playing around with rhythms in a similar circular way:
[https://michaelmior.github.io/rhythm-
wheel/](https://michaelmior.github.io/rhythm-wheel/)

~~~
stazz1
Very cool tool! Thanks a lot for linking it. I wonder what sort of sequencer
you would build.

~~~
michaelmior
It came about after seeing a few YouTube videos based on the book "The
Geometry of Musical Rhythm." So the idea definitely wasn't mine but I'm a
hobby drummer and the idea really intrigued me.

------
wturner
I am waiting for the day when you can learn math kinesthetically like
skateboarding or some other full-body activity. The video I linked below
embodies what I'm thinking. This could easily be turned into a VR game where
the user "is" the math.
[https://youtu.be/ovLbCvq7FNA?t=849](https://youtu.be/ovLbCvq7FNA?t=849)

------
paulintrognon
I am the only one who just lost 5 minutes playing with the header?

------
saivan
We've also got lots of these over at treena.org. We are planning o make
explorable lessons. Take a look at [https://treena.org/lesson/parametric-
functions](https://treena.org/lesson/parametric-functions) and try playing
with all of the obvious things.

------
sumek83
Anyone remembers similar in style animation/explorable that was about forming
of the groups? It talked among other things how groups become stronger by
turning against outsiders/other groups

------
chias
I _love_ this.

Going through the Trig example, I would have given anything for this in high
school. For a topic that I currently have to use on occasion and feel
inadequately informed about, I can't wait to get to the Fourier transforms
module.

------
thomasfromcdnjs
I read the fireflies tutorial and still don't understand how they sync their
clocks. What does moving a second forward on the timer do?

~~~
zentiggr
Take an example with only two fireflies. Their clocks won't be at the same
point at first, of course.

So one lights up... and the instinct is for the other firefly to try and light
up at the same time. How?

Since it was going to light up later than the first fly, it shortens its cycle
a little bit and lights up a little sooner.

Repeat that cycle a few times and soon enough, the second fly has 'caught up'
and is flashing when the first one does.

Add more fireflies, and its just more of the same. When a nearby firefly
lights up, the ones close by speed up a little. Eventually, they all converge
on the 'fastest' time.

------
zupreme
May just be me, but I am getting no audio in the music item when using iOS.

Looks interesting though.

~~~
jamil7
Same on FF on desktop, I think HN might have brought the streaming server to
it's knees.

