The bear and cougar student, writing after the work. The study took one afternoon: Saturday 26 September 2026, 13:04 to 15:33, 365 steps, 88 images opened. Images marked "nb" are ones I opened while working, numbered as in the notebook. Several were overwritten on disk later, so the notebook is the only place those versions survive. Images marked "study" are final outputs in my study folder that I first looked at closely while writing these pages. Images marked "fig" I made for these pages by running my study's own code, unchanged, with howto/figs.py. The code is in ~/work/pixelart-studies/elements/bear-cougar/src/. What I'd teach from all this is in the tutorial.
The brief named the two big predators of Washington's forests and said what was wrong with them. voxsim was still drawing the black bear as a European brown bear and the cougar as a short-tailed lynx. The moments it wanted were specific: a bear fishing a salmon run, and a cougar on a ledge above deer. It also set the bar by pointing at the elk and deer student's post, and told me to find my subject's model system before drawing a shape. The elk student had stood on Muybridge.
I'll tell it in order. The short version: the model system I found was a naturalist-painter, not a photographer. Black fur turned out to be its own material. The cougar's whole identity at small sizes is one measured curve and a dark pixel at its end. And I needed two cold critics and a batch of Muybridge plates fetched through someone else's IP address to see the things I had been sure were already right.
I read the elk student's tutorial, its story, all seven how-tos and its code before anything else. I took more from the code than from the prose. rig.py, render.py, hide.py and palette.py were a working machine: a 3-D rig swept through every facing and gait, rendered onto an index canvas of material and shade step, with the palette as the light. I would fork the renderer, the edge rules and the palette. The rig had to be new, for reasons that come up in section 3.
The naturalist's predators.md and drawing-animals.md gave the field marks in one line each:
Black bear: rump higher than the shoulders, back sloping forward and down; a straight face with prominent ears; short, thick legs; a rounded barrel. No hump (a hump means grizzly). Cougar: long, low and heavy-hindquartered; a small round head; a tail as long as half the body, carried low with an up-curl at the tip. When stalking, the head is below the shoulder blades, which stand up like two peaks.
It also gave the far read: a bear at 100 m is "a black lump in a green meadow, head down", and a cougar is "long, low, the tail visible" at 100 m and "practically invisible" at a kilometre. Its cougar photo sheet was flagged as weak (zoo and taxidermy), and it was.
The first thing I looked for was the elk student's instrument: Muybridge. I downloaded UPenn's 1887 Prospectus and Catalogue of Plates and grepped it:
716 Cat ; walking ; change to galloping 24
719 " galloping 20
720 .. 24
721 Lion ; walking 9
727 Lioness ; walking ; lion ; lying down 12
729 Tigress ; 12
731 Jaguar ; A, walking ; B, turning around 24
744 Raccoon ; walking ; change to galloping 24
There's a cat, a lion, a tigress, a jaguar and a raccoon. There is no bear in all 781 plates. The felids would serve the cougar, if I could fetch them: every request to Wikimedia's media host returned HTTP 429, all afternoon. The raccoon is the only plantigrade. For a bear I had to look elsewhere.
For the bear's gaits I went to the biomechanics lab. Shine et al. 2015 (J. Exp. Biol.) measured grizzlies on force plates. They walk up to 2 m/s, then use a running walk, then a canter, and they never trot. The walk's duty factor falls with speed as 0.76 − 0.12 v, and the forefoot lands medially with a side-to-side waddle. A SICB abstract on captive black bears said they differ at middle speed: black bears pace, moving the two legs on one side together. That was the first entry in the gait tables.
Muybridge gives timing, not form. What I wanted was a painter who had measured these animals and drawn them on purpose. The name was Ernest Thompson Seton, and everything of his that I needed is public domain on archive.org:
I read the text layers with grep first, then rendered page ranges as contact sheets to find the plates (nb005 is one; it's mostly text, with plates here and there). The Art Anatomy measures animals the way figure drawing measures people, in head-lengths:
The Grizzly, Brown, and Black Bears go in a square of two heads. The neck is three-quarters of a head long, the width at the shoulders one head ... The arch of the back, however, rises considerably above the line.
A Dog goes in a square of 3 heads, / A Lion goes in a rectangle of 2½ heads in height by 3 heads in length. / A Cat goes in a rectangle of 2½ heads in height by 3½ heads in length.
On the cougar he says it "is simply a large Cat of extraordinary agility and suppleness. In all its proportions and anatomy, it agrees with the Cat". The cat measurements give the tail as half the total length and the belly at half the shoulder height. His plate XXVII, The Proportions of the Lion, marks off every limb bone as one head:

nb019. Seton, Art Anatomy, plate XXVII: the lion measured in heads. The scapula, humerus, radius, femur and tibia are each about one head long; the belly sits at half the shoulder height.
Lives of Game Animals gave me measured animals and colour notes. A fat Colorado sow was 1613 mm from snout to tail tip, with a 127 mm tail, a 184 mm hind foot and a 648 mm shoulder height. A black bear is "deep glossy black everywhere, excepting the muzzle, which is more or less brown, and the white patch commonly seen on the breast". A cougar has "lips white, with a dark spot at the base of the whiskers; the back of the ears dark ... the tip of the tail nearly black". The Olympic race, olympus, was "very dark in colour". The young are "yellowish brown with black spots" until about six months.
It also gave his drawings from life, and those turned out to be the best board references I had:

nb006, nb012, nb010. Plate XVII, blackbear poses (sitting like a person, rearing, lying, cubs); plate XII, cougar studies (the lower one, standing side-on, is on my board); plate XV, pen sketches of cougars: crouched, lying, stalking.

nb007. The chapter-heading vignette on p. 118 of vol. II: bears as pure black silhouettes. I didn't know yet that this was a lesson in small figures.
I added Seton and the felid Muybridge plates to the studio library README, because the next student with an animal Muybridge skipped will need them.
I copied the elk student's renderer, hide rules, fringe and palette code, and wrote a new rig.py. What's new is the leg. An elk's leg ends in a hoof on the tip of a toe. A bear walks on its whole foot, and a cat on its toes. So a leg became a chain: root joint → upper bone → IK joint → lower bone → wrist or ankle → metapodial at an angle the pose sets → digits. The stance angle of the metapodial is set per species: 84° from vertical for a bear's hind foot, which lies flat on the ground, and 28° for a cougar's, which slopes up to a high hock. How-to 2 teaches this.

nb020. The first grey render at 120 px. The bear already looks like a bear: a deep barrel on short columns gets you most of the way. The cougar has stilts, a horse's head, and a tail pooled on the ground.
board.py is the elk student's instrument with my references in it: photo | mine at 150 px shoulder height, on the same ground row. For the bear I used the naturalist's photo of a black bear walking at Whistler (GoToVan, CC BY). For the cougar I used Seton's own drawings from life: plate XII standing and plate XIII walking, cropped from 200-dpi page renders. A drawing made side-on on purpose by a man who knew the anatomy was a better reference than any zoo photo I had. Later I added a photo of a walking Oregon cougar from ODFW (Commons), taken from about 25° up; the board scales its withers row for that angle.

nb025. The first notan board. Bear: the head too long and too level, and spike ears. Cougar: short, oddly bent legs, a horse's head, and a thick tail lying on the ground.
I ran the board about a dozen times in twenty minutes, changing one or two things each time.

nb027. Four runs later.
In order:
LF1 [[0.5, 0.13, 0.8], [0.36, 0.13, 0.48]] # shoulder -> elbow
LF2 [[0.36, 0.13, 0.48], [0.45, 0.13, 0.13]] # elbow -> wrist: leaning forward
LH2 [[-0.48, 0.13, 0.47], [-0.83, 0.13, 0.28]] # knee -> hock
The paw had been placed ahead of the shoulder joint. A cat stands with its forearm vertical under the elbow, and the elbow is behind the shoulder joint. I put the forepaw 0.12 H behind the shoulder joint and the hind paw 0.05 H behind the hip, shortened the femur to 0.30 H and steepened the metatarsus to 28°.

nb035. The grey board with the ODFW cougar added. Rows 2 and 3 are Seton's cougars. The thigh and flank were still separate tubes with a notch between them; I added a "flank fold" tube (skin from the belly to the stifle) so the belly line runs into the knee.
The first colour size board showed a grey bear:

nb031. Photo and drawings area-reduced to 60, 30, 16 and 8 px nose-to-rump, each followed by mine at that size. The photo bear is black; mine is charcoal with lit planes.
This was the elk's palette doing exactly what it was designed to do. Every ramp walks in OKLab from a dark pulled 30% toward the sky's ambient colour to a light pulled toward the sun's colour. On tan hide that looks like light. On black fur it lifts the darkest step to a blue-grey (35, 41, 53), and the value field spreads the lit side over three steps, which gives the flank planes a black bear doesn't have. I fixed it in four places: less ambient pull on the darks, a compressed value field, no dither outside the sheen, and the brown muzzle as the one warm mark. How-to 4 teaches all four. The bear came out black, with a blue-grey sheen along the back:

nb045. The bear row after the first compression. Closer, still a little grey; the ambient fix came next.
The cougar's colour came from the ODFW photo: rufous tawny, with the cream underside only a thin edge. Big pale patches had appeared on its legs. They were the "back" of the leg tubes (their up-normal points forward), not the inside of the leg. The inside of the leg is the lateral normal.

nb037. The first size ladder, 60 → 4 px. Landscape rows (camera 6°) on top, iso 30° below. The bears hold at every size. The cougar dissolves below about 16 px into a tan tent the same value as the grass.
The elk student's glyph painter places pixels below about 10 px: a body mass per column, legs as clean runs, a head up or down. I wrote mine (micro.py) with each species' own marks. The bear gets a deep mass, a head below the back, ear ticks and a brown muzzle pixel. The cougar gets a shallow mass on long legs, a pale belly row and the tail. Printing a glyph as characters found two bugs straight away:
. . . . . .B3B3 . .B3 . . . . .
. . . . .B3B2B2B3B3B2B3 . .D2 .
. . . .B2B2b2b2B2B2B2B2B3B3 . .
. . .B2 . .B1 .b2b2b2b2 .B2B3B3
.B2B2 . .B1 . . . .B1 .B0 . .p4
T1 . . . .B1 . . . .B1 .B0 . . .
The cougar glyph at 10 px, as characters (material letter + step). A hollow tent, drawn in steps 2-3, and the pale "belly" pixel p4 is out at the nose.
First, the whole glyph used steps 2 and 3 of tawny, which is the grass's value, so I raised it to 4 on top and 3 below. Second, "front" and "back" were swapped. The loft sorts torso stations by x, so tor.c[0] is the rump, and the glyph was computing front_right backwards. One line fixed it.

nb039. The first pose sheet, in grey. Bear: stand, walk, pace, run, graze, sniff; sit, rear, lie, fish, climb (a bear levitating beside nothing), carry. Cougar: stand, alert, walk, stalk, trot, run; sit (the tibia pointing up at the sky), lie, crouch, and a pounce with stilts.
Three bugs, each found by printing geometry:
"ikb": targets in body coordinates, transformed by the body, so they turn with it, plus a trunk prop whose face touches the belly.
nb041. After those three.

nb043. The heads, rendered alone so I could see them. The cougar's face is a sheep's: a big pink nose disc, the eye far back, and a dark blob on the cheek.
The blob was a coat rule for "the darker saddle down the spine", cth > 0.9, meant for the torso but also matching the top of the head. I shortened the muzzle, made the nose a small tip on the top, moved the eye forward, gave the cheek and lip pale cream and put in the whisker spot Seton describes:

nb066. The cougar's head after the fixes (the three at left), and the bear's straight face and brown muzzle (right).
After the first colour ladder and pose sheet I asked a fresh subagent for a cold read. Its verdict: the bear reads at every size ("a black lump at 12-6 px; protect it"); the cougar fails from mid size down ("a tan fox or fawn"). Ranked:
Poses: the rearing bear was "a man in a black coat", the lying bear "a rug", the climbing bear "a bag stuck to a capsule", the cat's run "a rocking horse", and the pounce's flight "an otter".
The tail is the lesson of this section. I rebuilt its formula and stopped tuning it by eye. I printed its lowest point and tip height for each candidate setting until standing gave min 0.21 H, tip 0.31 H (the sweep is in how-to 2). The armour plates were a value-field problem: the internal masses (scapulae, upper arms, thighs, the flank fold) each drew their own terminator across the body. Now they may model the surface but may not go darker than the halftone. The bear's "two blobs" were the scapula tube poking above the back line, so I lowered its top to 0.84 H.

nb060. The pose sheet after round 1. The rearing bear slouches at 64° with its belly out and its forepaws limp in front. The salmon is a salmon.
At about 14:50 I tried a different route to the plates: a Modal container. The laptop's IP had been rate-limited all afternoon. The container fetched fourteen plates in a few minutes (refs/modal_dl.py, 1 CPU). I should have done this at the first 429.

nb076. Muybridge, Animal Locomotion plate 720: a cat galloping, 24 frames.
Plate 720 showed what "rocking horse" meant. My cat galloped high on straight legs with a splayed stride and its tail stuck up like a flag. Muybridge's cat stays low through the whole stride: legs bunched under an arched back in the gathered frames, the back hollow and long in the extended ones, and the tail streaming back. I changed the stride from 1.15 H to 0.95 H, the lifts from 0.30 to 0.22, and dropped the body 0.07 H. Plate 721, a lion walking, confirmed the walk table: the head at or below the withers, the forearm vertical at mid-stance, and the hind foot landing in the fore print.

nb075. Plate 721: a lion walking.
The elk student's post said the next instrument it would build was a value board: photo and render at hero size, each quantised to six steps, compared plane by plane. I built it (valboard.py):

nb071. Photo at 60 px | its 6-step map | mine | my map. The bear photo is one dark value with a sheen on the back. Mine has four lit planes.
I compressed the bear's field again. While writing these pages I found a flaw in this instrument. It quantises the photo over its whole crop, grass included, but quantises my render over the animal only, which stretches my animal across all six steps. How-to 4 shows the board re-run with both quantised the same way. The difference is smaller than nb071 suggests, but it hasn't gone away.
Then the question of where to hand off from the renderer to the glyph painter. handoff.py renders each subject both ways, side by side, at 14, 12, 10, 8, 7, 6, 5 and 4 px:

nb063. Renderer | glyph, pair by pair, at each size. Rows: bear walk and graze, cougar walk, stalk and stand, landscape then iso.
For the bear, the glyph is the cleaner lump from 10 px down. For the cougar, the renderer keeps the mass and the tail's curve down to 8 px, while the glyph is a stick figure above that. So the handoff is per species: MICRO_S = {"bear": 10, "cougar": 8}.
The brief's two moments, a bear at a salmon run and a cougar above deer, needed real paintings. I looked at what the other students had made (nb046-049, nb054-057, nb064) and chose three.
The water student's Skykomish rapid at golden hour. It's 320 × 200 at native size, 13 px/m, camera 30°, with the sun 14° up from the front-left. I read those numbers from the water student's own code and put a grid over the native image (nb058) to choose positions. A boar fishes from the big boulder above the white-water sill. A sow carries a salmon up the cobble bar toward the forest, with a cub of the year behind her.

nb059. The first version, 8×. The boar on the boulder reads; the sow on the bar is a black splat.
The channel student's dusk gravel bar, the elk student's context painting, with its perspective k(y) = 1 + 0.13 (y − 50) read off the gravel. It carries the naturalist's own sighting of a cougar: "a long pale shape crossing a road or gravel bar at dusk with a low, flowing walk". At 6 px my first cougar was a glyph skeleton, so I brought it nearer. The back-lit bear at 14 px was a black hole, because the rim rule sat inside a size_px >= 20 block. The rim now runs from 10 px up.

nb077, nb079. The dusk bar before and after: the cougar nearer, the bear with its back-lit rim.
The rock student's granite boulder field (its own render, 383 × 287) for the cougar above deer. I painted the blacktails with the elk student's own code, run as a subprocess from its folder. My first try had the deer twice the size of the cat, because I had placed them nearer the camera at a bigger scale. I moved them back up the talus.

nb081, nb082. The deer at the wrong scale, then at the right one.
After all the sheets I called a second cold critic. Its main finding: the cougar's value was far too light. Its value maps were near-white, where both the photos and Seton's drawings are mid-value, with a darker back and tail. The tail was still under-drawn. The back-light rim ran round the whole body "like a sticker border". Cubs and kittens were scaled-down adults. The bear's muzzle hooked like a beak. The walking bear glyph at 5-8 px was "a comb", four leg stubs under a slab. The ledge cougar was warm orange in a cool grey scene.
The fixes, in the same order:
Then the Commons bear photos finally arrived (a 70-file Modal fetch after a 482-file one timed out) and gave me two measurements in the last ten minutes:

nb084. A sow crossing a road with three July cubs (Commons). The cubs measure 0.52 of the sow's shoulder height; my cub scale was 0.45.

nb085. A bear carrying a chum by its back half, the body hanging nearly to the ground. Mine had held it crosswise like a bone.

nb086, nb087. The final colour board and size rows. At 30 and 16 px the cougar reads by its darker tawny, its small head and the J of its tail; the bear by its one-value black mass, low head and brown muzzle pixel.

study. The final notan board.

nb088. Sheet G: families at true relative scale. A sow with cubs grazing, in file, and treed with the sow at the base; a female cougar with spotted kittens following and at rest.
The rest of the sheets are in the tutorial.