icm: hexagosh slider

i’m finding it really helpful to write out a program “recipe” long-hand before i do anything in the editor. because it’s so easy to test and get instant feedback in the editor, i find that i lose myself down rabbit holes before i finish building out the structure of the program.

i’ll update this post when i write the program below.

slider thoughts

UPDATE: after the mess that was my last hexagon program, this one feels so good to finish… and in way less time.

simple hexagosh slider


icm: hexagosh

i think escher would be upset to know he inspired this goofy hexagon cluster animation. here are some things i learned during the process:

  • hexagon math is frustrating.
  • i wanted the computer to recognize individual hexagons without me having to create separate objects for each of them. but it seems like, in order to have an animation where individual hexagons rotate in relation to each other, i’d have to create as many objects as hexagons i wanted on the screen.
  • a lot of the nested push/pop operations seem collapsible since they’re just repeating the same thing over and over again. i wonder if there’s a formula/format for that?
  • i wonder if i could tell the computer to continue creating hexagons and push/popping to fill the dimensions of the canvas? or if, for every canvas size change, i’d have to manually add code?
  •  i don’t understand the logic behind how the hexagons do or don’t display. for example: in the blue cluster, when i click, a different set of hexagons rotates than displays when i don’t click.
  • related: how do i avoid getting lost in nested functions?



pcomp: takeaways from donald norman

visibility. an excess of visibility (overly complicated gadget-y things) is as problematic for the user as a dearth of visibility (poorly labeled doors, salt and pepper shakers with no visible distinction).

affordances, constraints, mappings.

affordances, constraints, mappings

visual cues and good conceptual models are essential for good design.

pcomp: digital input and output lab

UPDATE: i went to tom’s office hours and managed to get the circuits in this lab running correctly. we lit one LED, then the other, set delays, and reversed the order in which they lit up.

we talked about how the circuit (below) is really three separate, smaller circuits. we can test each one individually to see if they’re wired correctly before we connect the whole thing to power. this almost feels like, in icm, calling a single function with everything else commented out (ceteris paribus, to get econ-y about it) before running a multi-function program all at once.

digital in/out

we talked about voltage flows (high [+] to low [- or ground], always) and how, when the power source is the arduino, pushing the switch to complete the circuit won’t work. when the arduino is the intermediary, we have to tell the arduino to complete the circuit; it’s no longer a purely mechanical process like it would be if the power source was a battery. the arduino is reading what’s happening to the flow of current and reporting back to the computer that we interface with.

we talked about how parallel circuits are like ‘or’ statements and series circuits are like ‘and’ statements. why? in a parallel circuit, voltage can flow through one resistor/to one output ‘or’ another ‘or’ another; they don’t all have to receive voltage for one to receive voltage. in a series circuit, the same voltage is flowing through the different components of the whole circuit. if one part of a series circuit is not complete for some reason, the last output does not receive power.

loft bed build

wow. i got in a little over my head with this project—i’d never assembled anything other than ikea furniture—but my new room is small with really tall ceilings, so a loft bed made sense. i’d read only bad reviews of loft beds under $300 (although most non-ikea ones were closer to $500) and decided it couldn’t be that hard to make one from scratch. there are tons of resources online for DIY loft beds: plans, cut lists, etc.

so i went for it. i think building is a lot like baking. i’m not very good at baking, but i built the thing anyway. i probably spent $200 all in (including a corded impact drill, of which i am now the proud owner), i learned a lot about myself and pilot holes and gender norms at hardware stores in the process, shed minimal tears, and it hasn’t fallen down yet. victory!

junk shop desktop

i picked up this neat singer sewing machine base on craigslist before i knew what exactly i was going to do with it. the base was really rusty, so i got some cancerous pink goo at the hardware store to get most of the rust off. after a few hours of scrubbing outside (a great way to make friends in the neighborhood, btw), i snuck the base past roommates and into our bathroom where i rinsed off the remaining goo in the shower. steel wool helped, too.

the top of the desk came from the itp junk shelf. i love the weird designs the cnc machine left behind. i attached it with four 1 1/2″ 5/16 hex bolts.

icm: algorithmic design

prompt: Try making a rollover, button, or slider from scratch. Compare your code to the examples on github. Later we’ll look at how this compare to interface elements we’ll get for free from the browser.

Create an algorithmic design with simple parameters. (One example is 10PRINTexample code).

Tie the above two together and have an interface element control the visual design or behavior of other elements in your sketch.

i’d like to create an escher-inspired sketch. below, i’m working on the polygon. i had to manually set the x- and y-coordinates, but it seems like there should be a way to automatically set the origin so that the entire shape shows? maybe this is a translate()?

from here, i want to create a column of hexagons.

and then another column of hexagons next to the first, offset, so there’s no space between them. and then another and then another…


i’ve changed how i structure things a little. these are starting dimensions:

this is the translation, along x- and y-axis:

this is what i’m playing with. i’m not actually sure how i’ll get these columns to populate, but i feel like it’s a start to have them lined up correctly:

the above code yields:


pcomp: make a switch

things i’m finding difficult: 

circuits! pluses and minuses! reading schematic diagrams! i went to a pcomp help session, but the pluses and minuses and zigzags (diodes?) just float around in my brain. everything clicks a little more when i can start moving components around on the board. i worry about putting something in the wrong place and blowing out my LEDs/circuit board/laptop, though.

things i found super cool:

trying to turn an old apple mouse into a switch! obviously, the broken mouse was not functioning in quite the way apple intended it to when i turned it into an LED switch, but the mouse-switch is actually a very basic version of its fancier self. it was exciting to see and feel how apple—or, really, whoever invented the mouse—packed so much processing capacity into a thing and made it “legible” to us by designing it for the human hand. put another way: when i pulled apart the mouse, i didn’t know what i was looking at. if the circuit alone had been connected to a computer, naked and without its mouse clothes, i wouldn’t intuitively have known how to rig the circuit to communicate with the cursor. but i do know what to do when the circuit is wrapped in an orb that i can move around my desktop and tap with my finger. so that was exciting, and it made me think more about the potential for well-designed switch interfaces to enable other body parts to talk to devices.

test, test
test, test
9v converterwith black == ground (-) and red == 5v (+)
9v converter with black == ground (-) and red == 5v (+)
power running through the entire breadboard and LED lit
power running through the entire breadboard and LED lit
power running through half the breadboard and LED lit
power running through half the breadboard and LED lit
a very fancy apple mouse

responses to systems/ethnography/infrastructure readings

Donella Meadows, “Leverage Points” Places to Intervene in a System”

“What is needed is much slower growth, much different kinds of growth, and in some cases no growth or negative growth.”

“The systems analysts I know have come up with no quick or easy formulas for finding leverage points. When we study a system, we usually learn where leverage points are.”

nassim taleb has written brilliant things that i only vaguely remember about this, i think when he writes about heuristics.

“People care deeply about parameters and fight fierce battles over them. But they RARELY CHANGE BEHAVIOR. If the system is chronically stagnant, parameter changes rarely kick-start it. If it’s wildly variable, they don’t usually stabilize it. If it’s growing out of control, they don’t brake it.”

Hal Foster, “The artist as ethnographer?” 

foster lays out walter benjamin’s critique of the author-as-producer, what foster is calling a “productivist” model. this model defines art as a thing made by a singular genius auteur-type. built in are bourgeois ideas of who/what an audience is, the concept of taste, etc., which are inherently anti-proletariat even though, theoretically/ideologically, these makers may be proletariat sympathizers. benjamin says it is not sufficient to be a sympathizer; in fact, it is not an actual position at all. these artists reinforce the capitalist structure they claim to critique.

from there, foster argues that left artists today do something similar. they put otherness on a pedestal, always removed from themselves, so that the artist’s role becomes one of anthropologist. the logic that justifies the artist’s removed, anthropological position is a primitivist fantasy, where the artist imagines that the other has access to a kind of creativity that the white bourgeoisie does not.

foster’s interested in the structural, as opposed to the individual, effects of this positionality. he contests its logic by arguing that globalization has erased any clear insider/outsider distinction (which i’d argue is arguable). he’s worried that the “projection of politics as other and outside may detract from a politics of here and now.”

theory, theory, theory. ethnography becomes an appropriate mode of artistic intervention, which often takes the shape of site-specific work that comments on a particular space, increasingly to fucked up ends as these sites are mined by other institutional departments (fundraising, outreach, PR) and developed or used to grease the wheels of development (as in: gentrification).

the gems are in this paragraph, where foster discusses how the institution

“imports critique for the purpose of inoculation… displaces work it otherwise advances… the show becomes the spectacle where cultural capital collects.”


“…the application of these methods has illuminated much. But it has also obliterated much in the field of the other, and in its very name. This is the opposite of a critique of ethnographic authority…”

Adam Rothstein, “How to See Infrastructure: A Guide for Seven Billion Primates”

“We know that capital fantasizes about the annihilation of space and time as its moves goods from space to space, but I want to experience the long, slow journey that is responsible for moving ninety percent of the world’s trade.”

— Charmaine Chua

“In effect, I am arguing for the continued importance of maritime space in order to counter the exaggerated importance attached to that largely metaphysical construct, “cyberspace,” and the corollary myth of “instantaneous” contact between distance spaces.”

— Allan Sekula, Fish Story

Vision in this technological feast becomes unregulated gluttony; all seems not just mythically about the god trick of seeing everything from nowhere, but to have put the myth into ordinary practice. And like the god trick, this eye fucks the world to make techno-monsters.

— Donna Haraway, “God’s Eye View”

finally, rothstein:

“We do not need a snatching away of the shroud, a techno-monster captured and paraded on stage. Not like an animal or person harnessed to a profit-generating machine. Not a big board of big data, constantly tweaked by a wizard’s wand. But a description of what the shroud is doing, and why it is there. To discover who it is hiding, why, and how they came to be there.”

i’ve been thinking a lot about this issue in both pcomp and icm. in icm, even the software interface (which feels like the real, the “under the hood”, because it requires us to speak the computer’s language rather than ours) still occludes the mechanics we’re studying in pcomp. and the perfect mechanical parts we study in pcomp never reference their production, the mines they came out of, the hands that collected the raw materials that compose them.

a poem


(in increasing order of effectiveness)

12. Constants, parameters, numbers (such as subsidies, taxes, standards).
11. The sizes of buffers and other stabilizing stocks, relative to their flows.
10. The structure of material stocks and flows (such as transport networks, population age structures).
9. The lengths of delays, relative to the rate of system change.
8. The strength of negative feedback loops, relative to the impacts they are trying to correct against.
7. The gain around driving positive feedback loops.
6. The structure of information flows (who does and does not have access to information).
5. The rules of the system (such as incentives, punishments, constraints).
4. The power to add, change, evolve, or self-organize system structure.
3. The goals of the system.
2. The mindset or paradigm out of which the system — its goals, structure, rules, delays, parameters — arises.
1. The power to transcend paradigms.

from donella meadows institute