Always scratch a monkey mount

I spent three hours this morning petting a cat. No regrets.

(Porch Cat destructively ordered breakfast early, and since it was cold and foggy out, I sat down on the stairs and petted him for a few minutes before completing the trip to the front porch and loading him up with dry food and meat sticks. Twenty minutes later, he was scratching on the back door again, and the leftover food out front said he wasn’t still hungry, so I sat on the stairs to pet him for a while. He promptly fell asleep, so I carried him over to the couch and let him nap on my chest until he wanted out. Which was 2.5 hours later. Some people would say I have a cat; I can’t understand why)

(there’s very little AsoIku fan-art on Pixiv, and even less of the minor characters; this was the only recognizable Antonia I found)

“Well, fuck me silly, that worked the first time.”

While designing a fully-parametric set of connectors for my tinkertoy-takadai, I decided to add screw/nail/pin holes and angled supports. The supports are simple right triangles that were easily implemented with a series of if/else statements, but trying to reuse that code to create holes on any face that didn’t have a support was lumpy spaghetti with no sauce.

So I tore it out completely and wrote a little matrix:

pipes = [ up, down, left, right, near, far ];
all_faces = [
  [ 0, 0, 1, 1, 1, 1, V_UP,    ORIENT_Z ],
  [ 0, 0, 1, 1, 1, 1, V_DOWN,  ORIENT_ZNEG ],
  [ 1, 1, 0, 0, 1, 1, V_LEFT,  ORIENT_XNEG ],
  [ 1, 1, 0, 0, 1, 1, V_RIGHT, ORIENT_X ],
  [ 1, 1, 1, 1, 0, 0, V_NEAR,  ORIENT_YNEG ],
  [ 1, 1, 1, 1, 0, 0, V_FAR,   ORIENT_Y ]

A dual loop from 0-5 tests each side of the central cube for the presence of a pipe, and if it doesn’t have one, rotates to it and makes a hole in the wall. If it does have one, it checks each adjacent side. If that side doesn’t have a pipe, it translates into the pipe, rotates to face that side, and makes a hole in the wall. Yes, I’m punching holes in faces.

The new code worked, first time. And now I can reuse it to create both the supports and the actual pipes, eliminating about 80% of the original code.

Burning Bridges

I finally got curious to see just how large an unsupported span the Dremel could bridge without me having to get fiddly with temperatures and print speeds. With PLA, the answer seems to be “at least two inches, so stop wasting plastic on supports”:


Getting behind on games

I immediately recognized this as Sucrose. Genshin Impact really builds up your skills…

Comments via Isso

Markdown formatting and simple HTML accepted.

Sometimes you have to double-click to enter text in the form (interaction between Isso and Bootstrap?). Tab is more reliable.