LIGHT WORK

When I was 6, my parents gave me my first disposable camera and I ran outside into the sunny Stanford afternoon and immediately took, in rapid succession, 26 blurry photos of a bush. I wanted pictures of it growing. For some unfortunate reason, I eventually grew up and I stopped paying attention to plants. I think you once told me—or gushed, most likely—that you had plants. I don’t remember specifically. I can only recognize the presence of plants by plant-shaped gaps in my memory. I can’t remember the actual plants themselves. That is, itself, a sign of those times.

But then, mid pandemic, I was suddenly re-beguiled by their verdant wiles. Plants are beautiful, delicate, mute repositories of life and yet they absolutely bustle. Quitely, they bustle. Sometimes I look at them and imagine how imperceptibly they are growing, with fragile inevitability. Even if I can’t see them grow, they are, without doubt, growing. They even represent sort of perceptual paradox for me: having observed them quite often, I am required to conclude that they are growing day over day, but I can never see them grow. Only when I am not looking. It fascinates me. Absolute dopamine factories, they are.

What’s also cool about plants is that they act as a reciprocal canary-vessel for self-care. Vessel: as they bring me oxygen and joy, taking care of them benefits me, and in the time I set aside to tend to them, I am required to chill the fuck out for a second. Canary: if I don’t chill the fuck out and tend to them, they wilt, which gives me an easy visual representation of my fraying sanity. In this way they embody and promote good vibes all around, which is dope. Plus, girls love plants. Basically, plants are lit.

But plants take like fooooorever to grow and while, yes, the last paragraph is all about the mindfulness of the green goobers, didyouknowplantsgodormantinthewinterwheretheymightnotgrowatall? That’s dumb. After some careful questioning of the local college kid who staffs the overpriced ~vibey~ nursery by my house, I figured out that the dormancy of the plants is only dependent on 3 factors: heat, humidity, and light/dark cycles. It wouldn’t feel right to engage in mindfulness without a little bit of optimization, right? And that’s how I got into making lamps. Plants need light. Loads of it. And so now my new thing is lamps, because they help plants grow, and also because this one girl from hinge said “like, isn’t everyone into plants now? But lamps are underrated.” Lamps are lit.

DESIGN

So the commission for this was a rescue grow-lamp for a Pothos stranded in a corner of a sterilely lit house my friends built themselves. Their house includes a lot of warm tones, light wood, and minimal design accents. Therefore, the key aspects of the lamp were: minimal, modern, super-warm, bright-but-indirect lighting (plants love bright-indirect) in the >800 lux region with a >1 foot light dispersal area.

I’ve seen a lot of halo lamps for grow lights; the circular arrangement is actually quite efficient for even light dispersal over a large area, but they always look a bit Christmas-kitch to me. I needed something to break up the IG lowest-common-denominator design and root it solidly in minimal post-modern, so I slapped some emergent complexity on the halo with easy-to-fab rectilinear slats.

Conceptual render

My major innovation in this space is using an infill-only slicing (0-wall gyroid infill support block @ 11% infill, thanks to Cura’s easy slicer interface) to create a fully solid yet translucent PLA shade.

Cura slicer preview

I paired this with the very warm-toned and very exciting fully compostable NonOlien PLA from Filamentum, printed hot (189°C) on the Ender 3 V2 (super affordable entry-tier printer, very easy to use). It came out smashingly, although at this temperature, the flow compensation and print accuracy was poor, so I had to undersize the zero-clearance interfaces by a whopping 370µm on each side. 5 hours of printing later, though, I had exactly what I had hoped for:

Test fit

The slats are 3 strips of 1×5″ poplar with the middle slat cut down to a 1.5″ relief, laminated longitudinally and then cut in 8mm strips transversely. I finished the poplar with 4 coats of Waterlox (soft wood is super thirsty) and a finish coat of semi-gloss Polycrylic, slapped some super warm high density 2700k LED strip lights in there and added a 2.1mm barrel connector for an easy 12V connection to an affordable 2A power supply (due to the 1.5m of installed LEDs). The results:

Stunning
Installed with the happy owner and happy plant—easy style!

FUCK YEAH RECURSION

A Function to Un-Nest Nested Structures in MATLAB

So I’m flying back from Shanghai right now, (youalreadyknow it’s business class) and I decided to business-expense-splurge for the in-flight wifi, which is about as fast as a snail in the process of peacefully passing away. This means the only scrap of entertainment I can garner from my laptop is writing code in MATLAB. Writing fuckaround code in a pretend programming language in a rickety IDE has a provided surprising source of succor; if you were here you’d know it too because you’d notice I have been sitting FOR HOURS WITHOUT MY SEATBELT ON because I was simply too enraptured by the alternating tides of hate and happiness that MATLAB so easily exerts on the user.

Basically, I’m working on a GUI that allows a user to programmatically  create test limits for test data, while also allowing the user to efficiently adjust the limits where our absurd test data manages to invalidate centuries of statistical knowledge. This requires allowing the user to load a specific test from within an absurdly packaged data file which comes from a test system written by someone who clearly much prefers obfuscating and hiding things over effective data collection WHICH in turn means deeply and variably nested structures. Like 400-megabyte-CSV, stuck-in-limbo-with-Leonardio-DiCaprio, booger-that-you-can-feel-but-after-several-embarrassing-red-lights-you-cannot-remove levels deep.

Therefore, after careful perusal of mathworks, I wrote the following code. It uses recursion to return an array of strings describing each and every branch of a struct, down to the twig. It is surely my greatest accomplishment thus far.

function allfields=fieldnamesr(struct);
% FIELDNAMESR recursively explores the depths of nested structs To find all
% possible branches
%      fuck yeah recursion
fields=fieldnames(struct); %are there any field names?
idx=1; %increment variable
for i=1:1:size(fields,1) %for all field names
    if isstruct(struct.(fields{i})) %see if that field name itself is a structure 
        temp=structRecurrr(struct.(fields{i})); %if also structure, then we must go deeper!
        for j=1:1:length(temp) %for all returned values 
        allfields{idx,1}=sprintf('%s.%s',fields{i},temp{j}); %return a string containing returned values
        idx=idx+1; %increment
        end
    else
        allfields{idx}=fields{i}; %if field name not struct, then we are at bottom level
        idx=idx+1; %increment
    end
end

PSR J1748-2446ad

Hey baby,

what’s the world coming to these days? It’s all going to hell isn’t it?
what if we just got away from it all? like light years away, like really out there
with the sky figuratively falling and with the economy and the people and the election and the general state of things

you’re the one thing that’s good in the world

so

I was thinking

let’s just get away from it all, like you’ve always wanted

you and me in a cottage on the sea side
you know? Let’s do something crazy and just run away
we don’t need anyone if we have each other.
Just you and me
I can see you’re with me to the end no matter what
so let’s elope,

let’s go some where crazy

I’ve got the perfect spot in mind:
let’s go to PSR J1748-2446ad
what if we did that? let’s just get away
I know this is a little out of the blue, a little crazy, I can see you’re a little worried, but it’ll be perfect

 

let me tell you about J1748-2446ad

it’s a little spot up north, in Sagittarius, by Terzan 5, it’s exactly the kind of place we’ve always imagined we’d grow old together in

there’ll be plenty of room for kids if we want to have some

it’s a fix me up for sure, the heating’s a little wacky, it’s probably like 6×10^5 Kelvin there year-round
but I love the way a little sweat looks on your skin

the foundation needs some work, the whole place might collapse into a black hole;
you’re all the foundation I’ve ever needed

it’s also a bit bright there; the 1.29×10^26 watts of emitted X-Rays would either instantly vaporize us or instantly give us cancer and then instantly vaporize us
I’m not worried about that though, your smile is pretty damn radiant and I haven’t vaporized yet, have I?

that aside, it’s got a great view, the perfect place to watch the sun set, though we might get a little motion sick because J1748-2446ad rotates at about 44,000 miles per hour. But you already spin me right round baby (like a record)
anyways, that’s 61,862,299 more sunsets a day we can watch together with our toes in the neutron sand

also probably the wifi won’t be that good, what with us moving at 0.25 the speed of light and the 2.3×10^13 Gauss magnetic field that will erase all of our devices

 

and also instantly destroy them

 

and also instantly crush our bodies

but I think it’s nice to unplug from everything every once in a while

Oh, and we’ve got to watch for the tide, or at least the tidal forces, because J1748-2446ad’s gravitational field,
well it’s about 106,387,117,347 G

it’ll keep us down to earth

but together I know we’d figure out how to make it work
and once we get there it’ll be our own little paradise
Imagine! what if we did it? what if we just got up and dropped everything and left right now?
with only high-energy astrophysics to bother you and I
we can finally have a cottage on the sea side like you always wanted

it’ll be just you and me

and a sea

of ultra-densely packed neutrons radiating gravitational waves into the starry sky

a place where we can just be us

just you and me
and PSR J1748-2446ad
I know its late at night, babe, but it’s 18,000 light years a way so we better get going
it’ll take 134,123,326 more anniversaries to get there if we sling shot by Jupiter

we can celebrate on the road