THE INTRO CARD is free — what an AI skill card is and how to use one Download →Lost Lauren, contact us

THE APPS · Nº 1160 · EDITION 1 · LAUNCHING SOON

LUND CARDS · THE APPSNº 1160 PROPOSED
THE LIGHT CARD — the LSC-1 face
THE CARD AS TEXT · FOR EYES AND FOR MACHINES

THE LIGHT CARD · one look, applied the same to every photo

WAKES WHEN someone wants one look across many photos, or a grade they can repeat exactly

THE LOOP

  1. write the recipe; read it back in words
  2. grade one photo; look at it
  3. grade the batch with the same recipe
  4. cube · the look for other editors
  5. crop · the box for the print or post

NEVER

  • Invent a look the owner did not ask for
  • Grade video
  • Write over the photo it was given

IT MAKES grade — the recipe, applied; cube — the look as a 3D LUT; recipe — what each adjustment will do; crop — the largest box of a ratio.

THE STANDARD linear light; nothing by default; greys stay grey; the edit travels; a look exported, measured; its own formats.

IN THE BOX SKILL.md · CARD.md · TIN.md · START-HERE.md · LICENSE-NOTE.md · THE-CLAUSES.md · MY-LEDGER.md · WITNESS.md · SELFTEST.md · AUDIT.md · MANIFEST.md · HOSTS.md · scripts/light.py · references/THE-LIGHT.md · rules/ (4 doors) · system/ (2 prompts) · mcp/mcp_card.py · card.json · card.svg · card-machine.svg · card.html.

PROOF SELFTEST 8/8 · witnessed in Claude 2026-10-11 · Edition 1.

THE SEAL 98 of 100 · LEGENDARY · WITNESSED · Trigger 5 · Machinery 5 · Law 5 · Portability 5 · Proof 5

IT CAN BE WRONG an AI reading a text file: it can be wrong and can invent a number, a rule, a name or a date; check what matters against your own records and the source; the risk is yours. THE-CLAUSES.md rides in the packet and is part of the licence.

THE PUNCH · SHA-256 OF SKILL.MD · C64642344B82297D74753A52

THE FACE, FULL SIZE → · THE MACHINE FACE → · card.json →

THE LIGHT CARD

one look, applied the same to every photo

GRADE · CUBE · RECIPE · CROP

98LEGENDARYWITNESSEDIN CLAUDEIN LUNDRIN CHATGPT

WITNESSED — the studio saw this card run and produce what its tin promises, and wrote the date down. What the marks mean →

THE SPEC SHEET · READ BEFORE YOU BUY · THE STANDARD EVERY CARD MEETS →

SEAL
98 of 100 · LEGENDARY · WITNESSED
EDITION
E1 · witnessed 2026-10-11
MACHINE
scripts/light.py · 4 commands · selftest 8/8
RUNS
On your own computer. Standard library only, offline; no account, no key, no telemetry.
HOSTS
Claude · Claude Code · ChatGPT · Gemini · any AI that reads a file (HOSTS.md names each door)
LICENCE
One person, any number of their own AIs and computers · editions replace files · nothing renews · freeze, not loss
PUNCH
C64642344B82297D74753A52 · sha-256 of SKILL.md · check any file against it →

CITE THIS CARDTHE LIGHT CARD, Edition 1. Lund Studio LLC, Westminster, Colorado. https://lundr.tech/?view=light-card. Punch C64642344B82297D74753A52. Retrieved 2026-10-11.

What it is.

An offline photo-grading engine built on the standard library alone. grade applies a recipe (exposure in stops, white balance as temperature and tint, an S-curve contrast that keeps black and white, saturation about each pixel's own brightness, levels, and optional auto levels and auto white balance) to a PNG in linear light and writes the recipe into the file; cube exports the recipe as a 3D LUT in the .cube format other editors load, and measures how closely it matches; recipe says in plain words what each adjustment will do; crop finds the largest box of a ratio inside a frame around a focus point.

It carries a machine that shows its working: grade — the recipe, applied; cube — the look as a 3D LUT; recipe — what each adjustment will do; crop — the largest box of a ratio — 8 checks in its selftest, every command on the record. It will never invent a look the owner did not ask for; never grade video; never write over the photo it was given.

Six laws, written into the card.

They are in the card itself, so the AI follows them.

LINEAR LIGHTEvery adjustment is made in linear light, then encoded back: +1 EV doubles the light.
NOTHING BY DEFAULTA key left out does nothing; an empty recipe changes no pixel at all.
GREYS STAY GREYSaturation works about each pixel's own brightness, so a grey is never tinted.
THE EDIT TRAVELSThe recipe is written into every file the card makes.
A LOOK EXPORTED, MEASUREDA .cube carries the fixed part of a recipe, and the machine says how closely it matches.
ITS OWN FORMATSPNG only, read and written by the card itself; JPEG, HEIC and video are refused plainly.

What rides in the card.

In the card’s own voice, with a machine that shows its working.

THE GUIDEreferences/THE-LIGHT.md
THE MACHINElight.py · four commandsgrade — the recipe, applied; cube — the look as a 3D LUT; recipe — what each adjustment will do; crop — the largest box of a ratio. Every command prints its working and refuses a bad input; 8 checks in its selftest, every command on the record.

What it does once your AI has it.

  • grade The recipe, applied
  • cube The look as a 3D LUT
  • recipe What each adjustment will do
  • crop The largest box of a ratio
  • On the record PLAIN reads back in words and a recipe with an out-of-range exposure and an unknown key is refused; a 64 × 48 test photo is graded and the recipe written into it; the look is exported as a 17-point cube; a 4:5 box in 4000 × 3000 is 2400 × 3000; a JPEG is refused plainly.

What it will never do.

It will never invent a look the owner did not ask for; never grade video; never write over the photo it was given.

PNG only (8-bit grey, RGB, RGBA); JPEG, HEIC, 16-bit, interlaced PNG and video are refused. Pure Python is slow on large photos: seconds to read a 12-megapixel file. A .cube cannot carry the auto adjustments. It is an AI reading a text file: it can be wrong, so check what matters against your own records and the source.

What’s in the buy.

  • CARD.md — the whole card: who it is, its laws, when it says no, what it carries · SKILL.md — the door your AI reads first · START-HERE.md — the first five minutes, for you
  • THE-LIGHT.md — the guide in references/, in the card's own voice
  • scripts/light.py — the machine: grade · cube · recipe · crop, standard library only, selftest 8/8
  • WITNESS.md + SELFTEST.md — every command on the record, as it printed · MANIFEST.md, every file hashed · AUDIT.md, the twelve checks
  • MY-LEDGER.md — the card's memory, on your own machine · TIN.md · LICENSE-NOTE.md · THE-CLAUSES.md · HOSTS.md
  • card.svg + card-machine.svg + card.json · card.html, the card as one offline file · the doors for ChatGPT, Gemini, Cursor, Claude Code and MCP hosts (rules/, system/, mcp/)

PROOF · SELFTEST 8/8 · 4 COMMANDS ON THE RECORD · WITNESSED IN CLAUDE 2026-10-11 · EDITION 1 · PUNCH C64642344B82297D74753A52

ON EVERY DOOR · A CARD FOR YOUR AI, A FILE FOR YOUR COMPUTER

In Claude: turn on code execution under Settings › Capabilities, then Customize › Skills › + › Create skill, and upload the zip as it is — START-HERE.md in the box walks you through it, and tells you how to keep the ledger. In ChatGPT, Gemini and the rest: a Project, a GPT or a Gem with the card’s files attached and the short door in the box pasted as its instructions. The words run anywhere an AI reads Markdown; the machines run wherever the host runs Python. Witnessed in Claude only. The host marks →

Take it.

Nº 1160 PROPOSED — LAUNCHING SOON

Sold as is under the term printed. A card instructs an AI you operate; results depend on your model, your files and your judgement. Not medical, legal, tax or financial advice, never the person’s boss, and not a licence to practise. The terms →

ONE PAYMENT · NOTHING RENEWS ITSELF

OFFLINE · ONE LICENCE · PUNCH-CHECKABLE · THE STANDARD

One payment. The file is yours to keep and keeps working at its edition; new editions issued in the year after you buy reach you by email as replacement files. Tax is added at checkout where it applies. Nothing auto-renews.

One email when it is on sale, from the studio; nothing else, ever.

A TERM, NOT A SUBSCRIPTION: NOTHING RENEWS ITSELF AND NOBODY IS CHARGED AGAIN. WHEN A TERM ENDS THE FILES STAY ON YOUR COMPUTER AND STAY READABLE — FREEZE, NOT LOSS.

THE MACHINE · IN THE OPEN · FROM THE WITNESSED RUN OF 2026-10-11

light.py, every command showing its working.

A small Python program, standard library only. Your AI runs it; you can too. Every block below is pasted from the card’s own WITNESS.md, as printed.

gradethe recipe, applied
cubethe look as a 3D LUT
recipewhat each adjustment will do
cropthe largest box of a ratio
selftest8 checks that prove the machine; it must print 8/8
recipe · WHAT EACH ADJUSTMENT WILL DO
$ python3 scripts/light.py recipe plain.json
plain.json · 2 keys · checked
  ev +0.15 · brighter by 0.15 stops: all light ×1.110; middle grey 118 becomes 124
  contrast +8 · more: an S-curve about middle grey (18% light)
    black, middle grey and white stay put; 64 becomes 61 and 192 becomes 195 (of 255)
  the order, all in linear light: levels, white balance, exposure, contrast, saturation; light past white is clipped
  cube can write it as a LUT
recipe · WHAT EACH ADJUSTMENT WILL DO
$ python3 scripts/light.py recipe bad.json
ev runs from -3 to 3 stops: 9 is out of range
grade · THE RECIPE, APPLIED
$ python3 scripts/light.py grade photo.png --recipe plain.json --out photo-plain.png
photo.png → photo-plain.png · 64 × 48 px (0.00 megapixels) · RGB · 0.00 s
  read 0.00 s · grade 0.00 s · write 0.00 s · 6,307 bytes in, 6,367 bytes out (filter none)
  the recipe applied, in linear light:
    ev +0.15 · brighter by 0.15 stops: all light ×1.110; middle grey 118 becomes 124
    contrast +8 · more: an S-curve about middle grey (18% light)
      black, middle grey and white stay put; 64 becomes 61 and 192 becomes 195 (of 255)
  written into the file as LightRecipe: {"contrast": 8, "ev": 0.15}
cube · THE LOOK AS A 3D LUT
$ python3 scripts/light.py cube plain.json --size 17 --out plain.cube
plain.json → plain.cube · TITLE "plain" · 17 × 17 × 17 = 4,913 points · 132,926 bytes
  ev +0.15 · brighter by 0.15 stops: all light ×1.110; middle grey 118 becomes 124
  contrast +8 · more: an S-curve about middle grey (18% light)
    black, middle grey and white stay put; 64 becomes 61 and 192 becomes 195 (of 255)
  auto_levels and auto_wb never go into a cube: they are measured on each photo, and a LUT is one fixed transform
  read back as most editors read it (between its points, trilinear) on 13,824 test colours:
    largest difference 2 of 255, average 0.12, against grade
crop · THE LARGEST BOX OF A RATIO
$ python3 scripts/light.py crop 4000 3000 --ratio 4:5
4000 × 3000 px · ratio 4:5 · focus at the centre
x 800  y 0  w 2400  h 3000
the box keeps 60% of the width and 100% of the height; its ratio is exactly 4:5
crop · THE LARGEST BOX OF A RATIO
$ python3 scripts/light.py crop 4000 3000 --ratio 4:5 --focus 3900,1500
4000 × 3000 px · ratio 4:5 · focus at 3900, 1500 px
x 1600  y 0  w 2400  h 3000
the box keeps 60% of the width and 100% of the height; its ratio is exactly 4:5
grade · THE RECIPE, APPLIED
$ python3 scripts/light.py grade photo.jpg --recipe plain.json --out x.png
this is a JPEG: convert it to PNG first; the machine cannot read JPEG without a library

THE NUMBERS, NAMES AND DATES IN THESE RUNS ARE THE STUDIO’S OWN EXAMPLES, INVENTED FOR THE RECORD; NO REAL COMPANY, PERSON OR PROPERTY IS NAMED.

QUESTIONS AT THE TABLE

Asked before the wire.

What does it need from me?

Write the recipe; read it back in words. It asks first for the photos as PNG (JPEG converted first), and the look in plain words or as a recipe.

Does it send anything anywhere?

No. The machine is a standard-library Python program that runs on your own computer and sends nothing anywhere; the words run wherever an AI reads Markdown. No server, no account, no key.

What is on the record?

The self-test (8/8) and every command run on real example inputs, pasted into WITNESS.md as they printed; the punch on the face is the SHA-256 of SKILL.md, so a downloaded copy can be checked against this room.

Can it be wrong?

Yes — it is an AI reading a text file. PNG only (8-bit grey, RGB, RGBA); JPEG, HEIC, 16-bit, interlaced PNG and video are refused. Pure Python is slow on large photos: seconds to read a 12-megapixel file. A .cube cannot carry the auto adjustments.

What will it never do?

It will never invent a look the owner did not ask for; never grade video; never write over the photo it was given.

← THE APPS · THE FLOOR →

AT YOUR ELBOW, NEVER THE BOSS · NOT LEGAL, MEDICAL, TAX OR FINANCIAL ADVICE · NOT A PAYMENT CARD · © 2026 LUND STUDIO LLC

PAY BYAmerican Express Apple Pay Diners ClubDiscoverGoogle Pay Mastercard PayPalShop Pay Visa
CART · 0