
A Light Box in Heavy Times - afandian
https://blog.afandian.com/2020/02/light-box-heavy-times/
======
munificent
What a perfectly delightful post in all respects.

 _> I am starting to think of interesting software for the Light Box that does
respond exclusively to human input._

When I think of responsive software that gives me with delight without
wresting any control from me, I think of programs that _magnify_ my input in
some way.

One simple idea that would well for this is a kaleidoscope. Press a button and
not only does it change, but so do corresponding mirrored or rotated buttons
around the box from it. A hex grid is great for this because then you can do
3-fold or 6-fold symmetry around the center button in addition to simple
reflection symmetry.

~~~
meatcar
Implementing the Conway's Game of Life on a hexagonal grid could be a fun
idea. With a slow enough turn clock, you probably don't need a start/stop
button, and can just mash a pattern in with one or two hands quickly and see
how it evolves. Another plus is that there probably aren't too many famous
hexagonal lifeforms, it would be a fun game for all ages.

This is a great reference for starting to work with hexagonal grids:
[https://www.redblobgames.com/grids/hexagons/](https://www.redblobgames.com/grids/hexagons/)

~~~
munificent
I thought about that too, but I think that goes against the author's goal of
keeping the user in charge. With Life, the machine keeps evolving and blinking
even when you don't touch it.

My goal was something fun to add to it that strictly only did anything in
response to user input.

~~~
StavrosK
I don't think adding the time component means that the user isn't in charge
any longer, especially if you add a potentiometer for controlling time all the
way down to zero.

A tactile Game of Life box that you can speed up/slow down/freeze and change
sounds delightful.

------
strags
That is awesome! The retro box is fantastic.

I discovered that my son (17 months old at the time) loves to mess with stereo
controls. So I bought a few rotary encoders and neo-pixel rings - build a
wooden enclosure with a plastic faceplate, and wrote some code to generate
fancy light and audio effects when he turns/clicks the knobs. He loved it. We
call it the "Max Distractor".

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

Inside it's just a RPi. One of these days I really need to make it do
something more fancy.

~~~
afandian
That is absolutely amazing. Thanks for sharing. I think I know my next
project...

------
Havoc
>I decided that I would make him something with buttons

Wow that brings back memories. My dad did the same thing. Wooden box with all
sorts of switches & dials & slider and things in it.

None of them did anything (maybe a random light?), but this was back when
switches/dials were made to last. So just the mechanical action had some heft
to it & was interesting to a toddler.

------
IIAOPSW
In case anyone missed the reference, the "boit diabloique" (devils box) is a
reference to the TV show "Look around you". The show presents itself as
educational programming while slowly desending into madness. In the episode on
music we are informed to never press the forbidden keys on the piano (the ones
that are locked in the boit diabloique next to the normal keys). A presenter
calmly demonstrates pressing one of these keys and promptly starts bleeding
from the ear. While he is casually having his brain leak out we are instructed
on screen to "write that down in your copy book now".

~~~
afandian
Since you did get the reference, there's an easter egg in the spoken version
of this just for you.

[https://blog.afandian.com/2019/09/ux-for-
toddlers/](https://blog.afandian.com/2019/09/ux-for-toddlers/)

I did reference the Boite at another Oxford Geek Night presentation about
visualising (and hearing) data, including some stage-makeup blood, which did
bleed from my ears.

A few people got the joke, but not enough to make it worthwhile going round
with fake blood on my ears for the rest of the evening.

------
mc42
It's a very cute box, and I particularly enjoy that this small blog reflects a
microcosm of development, fixing bugs for a product, and making it usable for
a "customer". That said, games for the author's child remind me of the MIDI
Fighter 64 as used by Shawn Wasabi [0], which while a MIDI controller, has
reactive patterns to button-presses while being used to play music.

[0] -
[https://www.youtube.com/watch?v=xof7PkoggbM](https://www.youtube.com/watch?v=xof7PkoggbM)

~~~
afandian
Thanks! The previous project was a playful take on UX.

[https://blog.afandian.com/2019/09/ux-for-
toddlers/](https://blog.afandian.com/2019/09/ux-for-toddlers/)

Thanks for the video, I love seeing performances like that.

I've been fascinated with those grid MIDI controllers for a while. I started
this project with a Launchpad Mini but didn't have the energy to work out how
to make it battery powered and reliable (there's an excellent Python library
but it was a bit flaky with a Raspberry Pi).

I wonder how you use them in reality. Learn a new layout for every song? I can
play a few instruments' keyboard layouts, but it would be a challenge to
remember where each sample was mapped.

~~~
filoleg
>I wonder how you use them in reality. Learn a new layout for every song?

There is usually no predefined layout (exceptions apply), but more modern
controllers with certain software allow you to save your presets and transfer
between different projects (kinda like a template).

Normally, it is like a giant chessboard, and you map synths/samples/etc.
individually for every new project. So if you are used to having all drums in
the top right corner, you can just assign them there on this controller.

------
DiggyJohnson
This is perhaps my favorite blog post to ever just “happen upon”.

I don’t have the time to write up as much as I might like, but it’s safe to
safe I enjoyed every dimension of what made this project awesome.

------
memco
What about a program that just toggles the state of the nearest neighbors?
That way it can be a game, but it is not timing based nor computer controlled.
The game can be to turn everything off or on and can also be used to try to
create interesting patterns.

------
elihu
I once ran into a similar problem with trying to make a regular grid with
hexagons, except that I was trying to do a hex grid wrapped around a sphere.

Here's what I came up with:

[https://wiki.haskell.org/IcoGrid](https://wiki.haskell.org/IcoGrid)

I treated the sphere as an icosahedron where each "side" is a triangular hex
grid. At each vertex is a pentagonal cell. To get the sides to fit together
nicely, I had to rotate them a little bit.

There may be a simpler way to do it, but it worked.

------
re
Lights out seems like the ideal human-powered game, though probably a bit
advanced for a two-year-old. But it would be interesting to see what a hex-
based variant of it looks like.

[https://en.wikipedia.org/wiki/Lights_Out_(game)](https://en.wikipedia.org/wiki/Lights_Out_\(game\))

------
c54
Lovely blog post, thanks for this.

------
mooneater
That last video was just lovely

------
jonah
Beautiful project. Beautiful philosophy. Beautifully written. Thank you.

------
disqard
Beautiful and inspiring. Thank you for making and sharing!

------
bcatanzaro
So beautiful, thank you.

------
ggm
Skinner box.

~~~
afandian
It certainly made me lose a bit of rationality when I got phantom keypresses.
The very first thing I should have checked was the pullups, but I had faith
that they would work.

There's a metaphor in there, but I didn't want to overload the post...

~~~
ggm
Keep training. This is better than the swimming rats shock tank

