Yesterday I was teaching coding to a class of high school students in Miami, and realized that it might be useful to show them DBN (aka “Design By Numbers”).
Teaching coding to a class of student in Miami from the lobby of the Media Lab is a new day. https://t.co/s0sE1HwGhT pic.twitter.com/g02x79djWK
— John Maeda (@johnmaeda) November 30, 2017
I wasn’t sure if I could resurrect it, but … OMG it still works.
- Just download this zip file: dbn-3.0.1 in 2017 to your computer.
- Make sure you have Java installed and ready to go.
- Download the JDK here as the first link.
- Use a terminal window and “cd” to the directory.
- Type “java -classpath classes DbnApplication”
And then the following should all become possible on your computer screen:
Related to this project, in the early 90s I created a lifesized model of a working computer in Nara, Japan with Nobuyuki Ueda and Masahiko Furukata called “The Human Powered Computer Experiment”:
For more information on Design By Numbers, please refer to the original Design By Numbers site. There’s also a book I designed and wrote in 1999 that is still available on Amazon in used form:
DBN didn’t have a long life, but it served a higher purpose of feeding ideas into systems like Processing (I’m so proud of Casey and Ben), Arduino (the early “play” interface was inherited), and Scratch (the “forever” command etc).
// dbnletters by Peter Cho
command letterA h v
{
line h v h (v+7)
line (h) (v+7) (h+3) (v+10)
line (h+3) (v+10) (h+10) (v+3)
line (h+10) (v+3) (h+10) v
line h (v+3) (h+10) (v+3)
}
command letterB h v
{
line h v h (v+10)
line h (v+10) (h+5) (v+10)
line (h+5) (v+10) (h+8) (v+7)
line h (v+6) (h+7) (v+6)
line (h+7) (v+6) (h+10) (v+3)
line (h+10) (v+3) (h+10) (v+1)
line h v (h+9) v
}
command letterC h v
{
line (h+4) v (h+10) v
line (h+4) v h (v+4)
line h (v+4) h (v+9)
line (h+1) (v+10) (h+9) (v+10)
}
command letterD h v
{
line h v h (v+10)
line h v (h+8) v
line (h+8) v (h+10) (v+2)
line (h+10) (v+2) (h+10) (v+6)
line (h+10) (v+6) (h+6) (v+10)
line (h+6) (v+10) h (v+10)
}
command letterE h v
{
line h (v+3) h (v+10)
line h (v+3) (h+3) v
line (h+3) v (h+10) v
line h (v+6) (h+9) (v+6)
line h (v+10) (h+9) (v+10)
}
command letterF h v
{
line h v h (v+10)
line h (v+6) (h+8) (v+6)
line h (v+10) (h+10) (v+10)
}
command letterG h v
{
line (h+4) v (h+9) v
line (h+4) v h (v+4)
line h (v+4) h (v+9)
line (h+1) (v+10) (h+9) (v+10)
line (h+10) (v+1) (h+10) (v+5)
line (h+10) (v+5) (h+6) (v+5)
}
command letterH h v
{
line h v h (v+10)
line h (v+4) (h+10) (v+4)
line (h+10) v (h+10) (v+10)
}
command letterI h v
{
line h v (h+10) v
line (h+5) v (h+5) (v+10)
line h (v+10) (h+9) (v+10)
}
command letterJ h v
{
line h (v+3) (h+3) v
line (h+3) v (h+9) v
line (h+10) (v+1) (h+10) (v+10)
}
command letterK h v
{
line h v h (v+10)
line h (v+1) (h+9) (v+10)
line (h+5) (v+5) (h+10) v
}
command letterL h v
{
line h v h (v+10)
line h v (h+10) v
}
command letterM h v
{
line h v h (v+10)
//line h (v+10) (h+2) (v+10)
line (h+1) (v+10) (h+5) (v+6)
line (h+5) (v+6) (h+9) (v+10)
line (h+10) (v+10) (h+10) v
}
command letterN h v
{
line h v h (v+10)
line h (v+10) (h+3) (v+10)
line (h+3) (v+10) (h+10) (v+3)
line (h+10) (v+10) (h+10) v
}
command letterO h v
{
line (h+4) v (h+9) v
line (h+4) v h (v+4)
line h (v+4) h (v+9)
line (h+1) (v+10) (h+7) (v+10)
line (h+7) (v+10) (h+10) (v+7)
line (h+10) (v+7) (h+10) (v+1)
}
command letterP h v
{
line h v h (v+10)
line h (v+10) (h+7) (v+10)
line (h+7) (v+10) (h+10) (v+7)
line (h+10) (v+6) (h+8) (v+4)
line h (v+4) (h+8) (v+4)
}
command letterQ h v
{
line (h+4) v (h+8) v
line (h+4) v h (v+4)
line h (v+4) h (v+9)
line (h+1) (v+10) (h+7) (v+10)
line (h+7) (v+10) (h+10) (v+7)
line (h+10) (v+7) (h+10) (v+2)
line (h+6) (v+4) (h+10) v
}
command letterR h v
{
line h v h (v+10)
line h (v+10) (h+7) (v+10)
line (h+7) (v+10) (h+10) (v+7)
line (h+10) (v+6) (h+8) (v+4)
line h (v+4) (h+8) (v+4)
line (h+6) (v+4) (h+10) v
}
command letterS h v
{
line h (v+2) (h+2) v
line (h+2) v (h+9) v
line (h+10) (v+1) (h+10) (v+4)
line (h+9) (v+5) (h+2) (v+5)
line (h+2) (v+5) h (v+7)
line h (v+7) h (v+9)
line (h+1) (v+10) (h+9) (v+10)
line (h+9) (v+10) (h+10) (v+9)
}
command letterT h v
{
line h (v+10) (h+10) (v+10)
line (h+5) (v+10) (h+5) v
}
command letterU h v
{
line h (v+10) h (v+3)
line h (v+3) (h+3) v
line (h+3) v (h+9) v
line (h+10) (v+1) (h+10) (v+10)
}
command letterV h v
{
line h (v+10) h (v+5)
line h (v+5) (h+5) v
line (h+5) v (h+10) (v+5)
line (h+10) (v+5) (h+10) (v+10)
}
command letterW h v
{
line h (v+10) h (v+3)
line h (v+3) (h+3) v
line (h+3) v (h+6) (v+3)
line (h+6) (v+3) (h+9) v
line (h+10) (v+1) (h+10) (v+10)
}
command letterX h v
{
line h (v+10) h (v+9)
line h (v+9) (h+4) (v+5)
line (h+4) (v+5) (h+6) (v+5)
line (h+6) (v+5) (h+10) (v+9)
line (h+10) (v+9) (h+10) (v+10)
line h v h (v+1)
line h (v+1) (h+4) (v+5)
line (h+6) (v+5) (h+10) (v+1)
line (h+10) (v+1) (h+10) v
}
command letterX2 h v
{
line h v (h+10) (v+10)
line h (v+10) (h+10) v
}
command letterY h v
{
line h (v+10) h (v+7)
line h (v+7) (h+3) (v+4)
line (h+3) (v+4) (h+10) (v+4)
line (h+10) (v+10) (h+10) (v+1)
line (h+9) v (h+2) v
line (h+2) v h (v+2)
}
command letterZ h v
{
line h (v+10) (h+10) (v+10)
line (h+10) (v+10) h v
line h v (h+10) v
}
command letter l h v
{
same? l 1
{
letterA h v
}
same? l 2
{
letterB h v
}
same? l 3
{
letterC h v
}
same? l 4
{
letterD h v
}
same? l 5
{
letterE h v
}
same? l 6
{
letterF h v
}
same? l 7
{
letterG h v
}
same? l 8
{
letterH h v
}
same? l 9
{
letterI h v
}
same? l 10
{
letterJ h v
}
same? l 11
{
letterK h v
}
same? l 12
{
letterL h v
}
same? l 13
{
letterM h v
}
same? l 14
{
letterN h v
}
same? l 15
{
letterO h v
}
same? l 16
{
letterP h v
}
same? l 17
{
letterQ h v
}
same? l 18
{
letterR h v
}
same? l 19
{
letterS h v
}
same? l 20
{
letterT h v
}
same? l 21
{
letterU h v
}
same? l 22
{
letterV h v
}
same? l 23
{
letterW h v
}
same? l 24
{
letterX h v
}
same? l 25
{
letterY h v
}
same? l 26
{
letterZ h v
}
}
// my favorite expression of DBN by showing how computation works
// https://maeda.pm/2017/12/01/design-by-numbers-in-2017/
paper 0
pen 100
repeat B 0 100
{
paper 0
line 20 (100-B) 80 B
}
letterY 5 85
letterO 18 85
letterU 31 85
letterM 5 70
letterI 18 70
letterS 31 70
letterS 44 70
letterE 57 70
letterD 70 70
letterT 5 55
letterH 18 55
letterE 31 55
letterS 5 40
letterH 18 40
letterO 31 40
letterW 44 40
1 Comment
Glad the trip back to the 90s wasn’t too JAR-ring.
I was thrilled to co-teach in the moment with you. Fun! Grateful for the meaningful history lesson for the high school group and me, too, about MIT professors who started the Media Lab as a movement toward peace following work on nuclear bombs in WWII.