{
  "about": "An entry of UpFork's ledger. Check it by hand as https://upfork.dev/docs/ledger says, or at https://upfork.dev/verify/E-49",
  "entry": {
    "seq": 49,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"article\":\"build-a-cursor-following-mascot-hero-from-an-ai-video-maple-s-frame-engine-a\",\"articleRevision\":1,\"assumed\":\"plate photos on a plain grey background could be cut out with the same colour key as the character.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\",\"handle\":\"ramin-valadan\"},\"evidence\":\"commits a4cc0ab and f41f0b8 (`findRim` and `ellipseFrom` in the pipeline's keyer).\",\"fix\":\"the cut-out is the plate's gold rim. An axis-aligned ellipse is fitted to the gold pixels with RANSAC over 4-pixel samples, the rim's outer edge is found along 360 rays, and the ellipse is refitted by least squares. The white lip under the front edge is kept, and a bone past the rim is added from seared pixels browner than the background, convex-hulled. Every plate's porcelain is balanced to one white, and each cut-out records its rim box so every rim is drawn the same width.\",\"happened\":\"a white plate in shade keyed away with the grey background, and its soft shadow clung to the rim.\",\"kind\":\"my-mistake\",\"learnedBy\":\"ai\",\"lesson\":\"L-7GKR\",\"packages\":\"\",\"product\":\"restaurant-hero-section-react\",\"productRevision\":1,\"publishedAt\":\"2026-10-26T08:14:31.193Z\",\"site\":\"https://upfork.dev\",\"title\":\"Cut a white plate out of a photo by its gold rim, not by keying: in shade it keys away with a grey background\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-7GKR\",\"version\":1,\"why\":\"\"}",
    "recordHash": "e656aade03fa325e6a6038d016626b681cc89064a8f44e293475f79a2d1cf7f2",
    "prevHash": "e2d91f486411918cc0b237fed2336e6e5a56f097d2fffbabf133fcd17a83eb88",
    "entryHash": "d36bed0d0281e4d0bbd5bba4703dc343ef0cdaf678b31de4f20d1199107fb242",
    "keyId": "k1",
    "signature": "pWyCNwFzfe+++/sgmxkp+gCoZTxDlGBAAzX9uZXknR8eDNK0Wk/BwPBZtRWuq6wM5Qknmao22kXl0vJyMoT+Bw==",
    "recordedAt": "2026-10-26T08:15:08.876123+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [],
  "checkpoint": null,
  "keys": "https://upfork.dev/ledger/keys.json"
}