Aug 8, 2020

Whale Blackwork Pattern

I've been working on some digital art!
This is intended to be a 12"x12" pattern (25 dpi) for blackwork, an embroidery technique that accomplishes neat shading effects with variations in fill pattern and line weight.

Embroidery pattern depicting a whale and fish

The intricate, repeating designs lend themselves well to lasso-selection and tessellation functions present in most graphics editing software. I used Paint.NET and aligned patterns to a grid by eye, but these could easily be procedurally generated. There's some interesting academic literature on the topic.
close up image of tail that shows shading effects from variations in fill pattern
For the tail and flipper, I used a single geometric motif and added or removed elements to change visual density.
Image of a geometric pattern that increases in complexity and shading from left to right
Motif and variations used in tail and flipper

For the main body, I used a rigging pattern in a foreground layer and varied elements in the background. This made blending styles between tail and body a bit easier, although the process also created some invalid line intersections that I had to manually clean afterwards.
Image of a geometric pattern with increasingly dense background patterns from left to right
Rigging motif and main background variations used in whale body

The eye pupil uses a uniformly-dense fill pattern in a relative swath of negative space to provide a focal point, although it does not register as "dark" as the tail or the star-shaped intersections on the back. The eyebrow uses long swaths of single lines (a rarity here) to get visual interest. 

In general, I found it difficult to guess a priori which patterns would strongly contrast versus blend nicely. The waves-under-the-netting at the belly took a few tries to get a vertical offset that didn't completely disappear behind the knots. I also had to delete a bunch of horizontal and vertical lines where this motif is used at the upper section of the whale head (compare with the back section of the body moving towards the tail) to avoid creating complete asterisks, which draw the eye away from the flipper and eye.

Image comparing body and eye pattern densities
Asterisk-intersections (left) used on the caudal section don't seem like they would conflict close to the eye (right) when zoomed in, but end up making contrasting dark pixels from zoomed out.

I was particularly happy about the subtle weave where the body's and jaw's rigging patterns meet. Looking back on it, some of the intersections need a bit more thickness where the ropes bend around each other. I also missed cleaning up some of the diagonals on the teeth that don't quite reach a grid vertex. Oops.

close up of the eye and mouth area of whale pattern
This art style is really cool and provides a lot of space to embed fun thematic easter eggs (the challenge for this project was to have mostly nautical fill patterns), so I'll definitely play around with this more. I would spend more effort finding or making a snap-to-user-defined-grid function before doing another large piece like this, though.


None of these fill patterns are mine. (minus basic things like the pupil and some shading variations)

Most of the constituent motifs come from Kim Brody Salazar's Ensamplario Atlantio vol I (the background fish and one of the geometric fills are derived from vol II), where her blog was also a fantastic resource for understanding what sewers expect from a needlework chart.

The eyebrow comes from paul_june's seamless-wave-pattern-vector and was modified to fit grid constraints.

The overall whale design is a riff off of HookLineTinker's "Deep Dive".  

Mar 9, 2019

Ava Up and Running (and especially climbing!)

photo showing bare feet and climbing shoes

I CAN CLIMB NOW!!!!!!!!!!!!! I sat at my computer for a few minutes trying to find the right words to capture the emotion I have when saying this, but it's really just this simple. I now have what I've been working towards for the past 18 months — a body strong* and coordinated enough that I can focus on footwork and balance, rather than "will my leg collapse in this position" or "will I hurt myself." 
*(still have to wear a brace on the wall)

Let's recap:

photo showing a swollen left leg and unaffected right leg
T +2 days
This is when I was wishfully hoping I had just sprained my knee.
Then I learned I would need two surgeries and a whole lot of work.

video clip of the author taking small walking steps
T +10 days
Relearning how to walk!

video clip of the author jogging but swinging her arms as if preparing for a sprint
T + 1 year
Really derpy running; the muscle power's there but I can't move my legs fast enough to actually run.

video clip of the author running a short distance
T + 1.5 years
Gonna start working on that 10min mile.

I still have a long way to go before graduating from PT and being completely back in shape — and fending off arthritis and strengthening my leg will be a lifelong project — but I'm excited about the progress I've made. My list of "things I can't do yet" is getting smaller and smaller each month (trying to get approval for pivoting/cutting sports like frisbee and skiing next) and I'm ready to be outside doing things!

Nov 25, 2018

How Jumping Spiders Jump

I gave a talk at CEE's 35 Anniversary conference about some of my current research in the Shamble Lab  - our current understanding of how jumping spiders jump, and how we set up the simulations and physical experiments to figure that out.

PS: I am RSI '12, but I'm not / never was a software engineer at Two Sigma. 

Jun 23, 2018

leg reconstruction

Hey! It's been a while, so I'm here with a different kind of post. It's now been 5 months since my surgery and 10 months since I wrecked my leg (8/18 accident, 10/6 first surgery, 1/23 final reconstruction), and this post is on how a bunch of doctors (and my biology!) made me a new leg.

Note for squeamish people : basically every photo after this is a bruised or stitched-up or otherwise wrecked leg. I have the more 'scary' surgery photos hidden behind a spoiler button, but skip this post if medical photos make you uncomfortable.

photo showing sign from the perspective of the author's line of sight
It turns out all the accessible-route signs are above eye height if you're on crutches. It's probably even more out-of-sight if you were in a wheelchair.
So 10 months ago I fell off a bouldering wall at the gym. I hit the mattress with my left knee at a funny angle and heard a loud pop on impact (the same as when you open a sealed jar). I immediately knew I fucked up, even though it didn't hurt that much. To my surprise, I could walk on the leg so I hoped it might've just been a sprain. And x-rays from urgent care the day after showed nothing broken, so the doctor also thought it probably wasn't a big deal (they gave me a brace and told me to go ahead and walk on it)

photo showing a swollen left leg and unaffected right leg
Left leg super swollen compared to right

photo showing swollen leg with deep purple coloring around the knee crease
Bruising underneath the knee

Of course when I got the MRI results back, it was pretty clear I actually wrecked everything. The two major things were completely tearing an ACL and more importantly tearing half of my patellar tendon.

The MRI scans are really cool, too. If you haven't gotten an MRI before, you (the patient) can request a CD loaded with software to flip through axial, frontal, and side views (MRIs come in stacks of image slices). I also used this great website to compare my images to both healthy and injured knees.

Note: I am not a doctor. I backsolved knowing the radiologist's report and after being told exactly how/what/where was broken. Don't make armchair diagnoses without a medical degree.

Some quick MRI facts: My images are T2 weighted, so hydrated things appear lighter. Air is very dark. Muscles are supposed to be a neutral gray, and tendons are very dark. Fat is super bright.

labeled diagram of ligaments and bone features of the knee
Quick cheat sheet on knee anatomy

Focusing first on the ACL - this is one of the ligaments that runs diagonally inside the knee joint. It keeps the tibia bone from sliding in front of the femur, and is important for rotational stability.

On the left is a side view of the knee and on the right is the location of that image slice in frontal view. The normal ACL runs through a notch in the femur and connects to the upper bone at the back. There's... not supposed to be an air gap. (green circle)

MRI image of knee with a discontinuity at the ACL

If there's an air gap then that means the ACL is completely torn and retracted (think broken rubber band) somewhere. I backed up a few slices and found it curled against itself.

MRI image of knee with a curled piece of soft tissue in front of the bone

The other major injury was the patellar tendon. The patellar tendon below the kneecap and the quadriceps tendon above work to extend the leg. My fall partially tore it (transverse tear, like opening a sideways zipper)

Below is what the tendons should look like - completely black, solid strips.

MRI image showing faint taut lines of soft tissue

And here's the broken side. Compared to the intact quadriceps tendon, the patellar tendon here looks frayed (because it is!)

MRI image showing squiggly loose soft tissue where a taut tendon line should be

The patellar tendon is the more important injury, but its rehab interferes with ACL recovery. So, the first surgery just dealt with the patellar tendon and left the ACL alone. It's not like I would be running anytime soon anyway.

The surgeon grafted on a cadaver's tendon and sewed it to the intact part. Then we both let biology and PT take care of the rest.

photo of a very swollen and inflamed leg with a line of stitches
bandages came off 3 days post-surgery. Still very swollen.

photo of a swollen non-inflamed leg next to the unaffected leg
1 week. Swelling's down
The first objective for PT was to regain range of motion, which took a few weeks.

photo of a leg in a knee brace showing angle markings
Started off with only 20deg of flexion

photo of a leg in a knee brace showing angle markings
Quick progression 3 days later.
Got full 130deg a month later (though right leg can get to 150deg)
The second objective was to regain strength in the quad muscles. They atrophied while the leg was immobilized and I needed them to be strong enough to handle an ACL. (The stronger the muscles, the less stress placed on the ligaments and tendons)

An interesting discovery I made during rehab was how important re-training neural connections was to regaining control of my leg. The majority of the recovery felt like the scene from Kill Bill where she commands her toe to move:

scene from movie Kill Bill with subtitle Wiggle Your Big Toe

I had regained most of my muscle strength early on, but there was a delay between commanding my muscle to move and the knee actually bending.

Human biology is really cool. My leg didn't really feel like an extension of my body until I got the attached neurons to properly work in concert. According to videos like this, the same premise should apply when neurons seamlessly interact with inorganic muscles too.

Anyway, at the end of January I was deemed functional enough to get more parts. For this procedure, the surgeon opted to use an autograft (results in a stronger ligament but is a more invasive surgery) from my right (intact) knee.

(For anyone actually closely following this blog, yes I did fit two woodworking projects between the surgeries. Good deadline motivation!)

photo of the author in a hospital bed
Me before getting new parts

The ACL reconstruction is also really cool. Nearly all of it required just two small portals (I think they also reopened some of the previous incision scar since it was available)

Arthroscope images

arthroscope snapshots showing soft tissue and cartilage
Navigating to the femoral notch and finding the torn ACL and meniscus

arthroscope snapshots showing a drill boring a hole through cartilage and bone
Drilling and reaming an access tunnel through the femur to pass the new graft through

arthroscope snapshots showing a blue string and a drill tip
Feeding new graft (attached with blue thread) and drilling screw holes into femur and tibia.

arthroscope snapshots showing tap threads and tendon tissue
Tapping hole, adding screw eyelet, then attaching and tensioning new graft.

And finally, here I am 5 months later!
I've now been cleared to bike and go to the gym, and hopefully begin running, pivoting, and otherwise return to sports by the end of the year.

This is likely to be a perpetual in-progress project - not much is really known about what affects outcomes of major joint surgery. The evidence is both depressing (high likelihoods of developing early-onset arthritis and other complications within 10 years) and optimistic (aggressive first-year rehab is key)

photo of the author's legs with scars on the knees
Note the four circular scars on the left leg (2 from screws, 2 arthroscope ports). 
I'm planning on a 1year update in August on this topic, and also a post next month on a related walking-gait side project. Hopefully I'll continue to be on the up-and-up and will have more cool things to show then!

Dec 29, 2017

Calipers Box round 2 (post 2/2)

Hinge detail. I messed up a bit with the mortise widths, so I cut shims from scrap walnut and sanded them flat. The hinges for this one also open 180deg per giftee's request (they turned out so nice I'm thinking of modifying mine to open flat too)

brass hinge and wooden shim in carved box insetbrass hinge and wooden shim in carved box inset

Putting finish on the inside. I masked the pockets because I'm putting felt in this box (glue doesn't stick well to polyurethane.) I'm using satin polyurethane because it offers a marginally better protective layer than oil finishes, and it keeps enough of the grain texture to avoid looking awfully glassy.

wooden box with masking tape around pockets

Outlining felt with sharpie. The calipers pocket took two pieces, so I shaved the overlapping section into a taper to remove the bump.

felt pressed into pocket cavities and marked with sharpie

This glue is the best (I originally got it for gluing shoe rubber...) but it has noxious fumes. Ventilate well when using it!

piece of felt prepped with colle de cologne glue

The back of a knife is good for pressing the felt into tight corners. I left the box to dry overnight, then scraped/sanded off excess glue.

felt pressed into pockets with excess trimmed

Putting finish on the back.

box with polyurethane coat

I completed this box in time for Christmas! These photos are taken with a much nicer viewcamera.

closeup view of calipers in box
 photo of calipers in box

2/2 boxes done! Glamour shots in the sunlight.

small and large walnut calipers boxes

lids of small and large calipers boxes

Dec 17, 2017

Farmhouse Table

We needed a dining table, so I made a table! I bought wood from a lumberyard, then spent two months in the HobbyShop trying to finish this in time to put food on it for Thanksgiving (spoiler: just barely did it in time)

Wood required for this project:
  • 5 6ft 2x10s
  • 4 6ft 2x4s
  • 2 6ft 4x4s
as well as assorted 1" wooden dowels and miscellaneous hardware. I'll point out the important ones when they get used.

The first step, as always, is a planning sketch. I got inspiration from a google images search with terms 'farmhouse trestle table', but wanted to include some personal touches like tapered legs and breadboard ends.

I started with the top. I squared-up 2x10s with the jointer and tablesaw, and glued them up.

Clamping boards down to check for warpage

Drawing all over boards to mark grain orientations I'm happy with

A note about grain orientation for long glue-ups like this. The standard dimensional lumber I'm using is plain-sawn (as opposed to quarter sawn). Being plain-sawn (flat sawn) means that the boards contain the curvature of the growth rings.
This also means that since moisture loss is greatest along the growth rings, plain-sawn boards in particular are prone to curling away from the direction of the growth rings. This webpage does a good job of explaining the phenomenon further:
This kind of warpage, called cupping, only curls the board around 1/8", but to prevent a runaway feedback loop it's good practice to alternate the grain orientations on adjacent boards. This way it averages out and is less apparent in the final tabletop.
Glue boards so that the endgrain lines up like so
I leaned up my glue monstrosity against a wall and started working on the frame components. First up were the 4x4 legs. I wanted to make them slightly tapered, so they would look less like dimensional lumber. To cut repeatable tapers, I made a bandsaw jig that fit the miter track.

leg clamped down in the jig

side view of jig

note the tapered shim to compensate for already-cut sides
After tapering the legs, I cut each one of them to proper length. I relied on google's estimate of 30" for the average height of a dinner table. I also used the cut-off tapered scraps as shims to align the legs on the chopsaw (otherwise they wouldn't sit flat.)

Following that, I used a V-shaped jig to cut a 3" flat into the tops of the legs. The mounting bolts will go here.

cutting the flat

cutting the flat
In the interest of making an entirely disassemble-able frame, I'm mounting the legs to the apron using these premade corner brackets. I marked bolt locations with a punch, then drilled pilot holes on the drillpress.

I threaded on the hanger bolts using a nut and a socket wrench (the two ends have different thread sizes, so the nut bites on enough to apply torque with the wrench.) Afterwards, I repaired the threads using a die.

Last step on the legs was drilling clearance holes and adding threaded inserts to the bottom to accommodate adjustable feet. Then the legs were done!
Hammering in threaded inserts

Moving on to the apron, I cut 2x4s to size and then added a thin dado using the tablesaw to accommodate these Z-clip table fasteners. Clamping the tabletop to the apron using these slots will allow for seasonal moisture expansion and lessen the chances of cracking the table.  

Because the legs are tapered, I needed to taper the ends of the apron as well. I measured the leg angles and set the chop saw to a 1deg angle (this ended up being slightly too much, but the gaps aren't too noticeable)

Setting chopsaw angle
I used a kreg jig to drill pocket holes for the lateral (front-back) stretcher pieces and the center apron reinforcement. Since I had tapered the lateral stretcher pieces already, I used my cut-off shims to compensate for angle (lower left photo).

Then I dry-fitted the frame and pronounced it done! I packed away the frame pieces and continued work on the tabletop.

Dry-fitting frame. Look at all the lovely HobbyShop space in the background
My original plan was to only have thin breadboard ends as aesthetics and protection for the endgrain, but then the HobbyShop shopmaster went on a rant about how fine furniture's details needed to serve more practical purposes than just aesthetics and that I needed to do breadboards right.

Suffice to say, I ended up making proper breadboard ends and it was overkill.


Breadboard ends serve two purposes. First, they mechanically counteract cupping (see note on grain orientation above.) Second, they reduce exposed endgrain surface area (endgrain is more fragile).

Properly-attached breadboard ends need to allow for wood expansion; otherwise stresses will crack the table. This rules out glue as a reasonable attachment mechanism. Instead, I chose to use woodmagazine's method of concealed mortise&tenon + dowel slots. I also decided to use popularwoodworking's method of combining the mortise&tenon with a tongue&groove joint, which allows me to make more concealed mistakes without sacrificing structural integrity. (popularwoodworking also has an excellent guide to breadboard ends in general, check it out)

As a final detail, I chose to make the mortise&tenon have a slight shoulder above the pockets. Since I'm an amateur and was certain I wouldn't be able to get the breadboards completely flush, I wanted to ensure the inevitable gap would get concealed by some wood versus going through the entire table. This ended up being a good call even if it made everything else more complicated.

I marked up both breadboards with a marking gauge, then tried mortising them on the mill. That went terribly (board was too tall and vibrated loudly).

Second attempt was with the mortising machine (new tool!), which went much better. With this machine (effectively a horizontal mill), the workpiece is clamped flat while the tool is moved in XY with a joystick lever. Stop-nuts on the ballscrews let me set a repeatable mortise width and depth.

First I milled out the pockets, then went back and did the shoulder mortise.

I marked the far edge of each mortise to keep even spacing

Shoulder mortise

completed breadboards
With breadboards done, I put the tabletop on sawhorses and cut it to size with a track saw. Then, I scraped off excess dried glue and started cutting tenons with a plunge router.

This tracksaw is cleverly extruded to have built-in channels for clamps

Planning phase
The tracksaw track also makes a great straight-edge guide for the router

I routed both shoulder-depth and tongue-depth tenons, then flipped the tabletop over and did the same on the other side. I then used a saw to form the tongues. Luckily for me, this process cut out the tear-out on the outer edges of the tabletop and let me hide my bad technique!

Because my mortises were cut using a routing bit, I needed to round off the sides of the tongues. I did this with a coarse file. The process was very trial-and-error, but eventually both parts fit snug.

Once the breadboard was attached, I drilled the 3 dowel holes that need to become slots (to avoid overconstraint). One hole is left for later, because it remains circular. Drill bit used is a forstner bit, which produces the crispest edges.

Then I pried the breadboard off again. Drilling dowel holes through both breadboard and tabletop in one operation ensures that my slots are located in the right place.

After creating slots with a round file, I reattached the breadboard, pounded in dowels, then cut them flush. I only added glue to the uppermost section of the dowel - having the dowels glued to the tongues would make the slots useless.

State of the tabletop! Left side is waiting for glue to dry before cutting them with the flush-cut saw.

I waited a day for glue to dry, then got Coby and other members of the HobbyShop to help me maneuver this tabletop to the thickness sander. That tool was an immense time-saver, turning a roughly multiple-day sanding job into 3 hours of work.

After cleaning up sawdust, I applied two coats of satin wipe-on polyurethane (1000-grit sanding between coats). The frame parts got one coat.

Revealing the pretty colors is the best part!

All parts finished and drying
I never understood why most woodworkers immediately paint or stain their pine/fir pieces. I actually really like the warm golden color.

Once dry, these pieces all got bundled into a hatchback by my tetris-genius roommate and unloaded into our kitchen. I assembled this table in an evening, where the longest step was centering the tabletop over the frame. Tools required: screwdrivers (and drill because I'm lazy) and pliers.

A two-month project: done!

Unclear what's going on with the whitebalance in this/next picture

Assembled table!

Finished in time for Thanksgiving

celebratory coffee and cheesecake