POLAROID-90instant
Capture. Wait. Develop.
- Reference
- Polaroid SX-70 / 600-series instant film camera
- Format
- 1:1 fixed
- Modes
- Photo only
- Capture
- Roll — 8 shots per roll
- Flash
- burst
- Pricing
- Paid in-app unlock

What it simulates
- Gentle shadow crush (gamma 1.05)
- Hard highlight rolloff (knee 0.86) — plasticky whites like a real SX-70
- Muddy pastel saturation (0.88)
- Warm-luminance push (irMix 0.35)
- Film grain (0.35), halation (0.25), vignette (0.28), softness (0.5) — heavy softness matches SX-70 optics
- Curated PNG dust-fleck library ('polaroid-dust') and print-aging library ('polaroid-age')
- Bimodal LUT — ambient warm/greenish/muddy grade; cool high-key plasticky grade for flash shots
- White SX-70 frame baked into the exported PNG
How it behaves at capture
- Fixed 1:1 framing (SX-70 native)
- 8-shot roll — code-enforced (rollCapacity: 8), a real SX-70 pack
- 20-second deterministic chemical reveal from a seed frozen at capture
- Shake to 3× speed, but cannot skip — same as a real Polaroid
- First view triggers the reveal; the app remembers the final frame for subsequent views
- Byte-identical on replay — same seed, same develop
- Single-fire flash burst (no metering, no preflash — like a real SX-70)
- 12MP real photo pipeline — softness needs the source detail
- Live preview is deliberately clean — a real SX-70 viewfinder is a periscope onto uncorrected optics
- CONDITION chip controls aging (MINT / WORN / BAKED / BUSTED) via the print-aging library
What POLAROID-90 is
POLAROID-90 is a Polaroid SX-70 / 600-series simulation. You point, you shoot, you get a blank white square, and you wait for the chemical reveal. Twenty seconds. Deterministic from a seed. Not skippable. Same as a real Polaroid, because the whole point of a real Polaroid is that it makes you wait.
The develop
Every POLAROID-90 shot captures instantly and background-develops on the roll tile via a devReveal shader stage. On first view, a seeded 20-second chemical animation plays. Shake and it accelerates to 3× speed. It does not skip. After the first view, the app remembers the final frame — subsequent views show the developed Polaroid immediately.
The whole reveal is deterministic. Same seed, same develop, byte-identical every time. If a Polaroid app can't reproduce the same develop twice, it's animating a random effect on top of a finished photo — not simulating a chemical process.
Two LUTs, one shutter
Real Polaroids rendered ambient and flash scenes completely differently. POLAROID-90 ships two LUTs:
- Ambient — warm, greenish, muddy pastel. Applied to every capture.
- Flash — cool, high-key, plasticky. Applied only to shots where the burst actually fired.
The bimodal grade is a capture-time behaviour, not a look. A filter can't do this because it can't know whether the flash fired. POLAROID-90 knows because it fired the flash.
What it doesn't do
- POLAROID-90 does not accept imports. Roll cameras refuse them.
- The live preview is deliberately clean — a real SX-70 viewfinder was a periscope onto uncorrected optics, not a preview of the film that would come out. POLAROID-90 mirrors this: what you see through the viewfinder is not what the print will look like. You have to wait 20 seconds to find out.
- You cannot skip the develop.
How to shoot with POLAROID-90
- Point-and-shoot. The camera does not reward composition tricks; SX-70s were snapshot cameras.
- Interiors and portraits at flash range benefit from the bimodal LUT.
- The CONDITION chip (MINT / WORN / BAKED / BUSTED) drives the print-aging library — MINT looks fresh, BUSTED looks like a Polaroid that lived in a shoebox for two decades.
- Eight per pack. Load a new one when you run out.
See also SNAP-27 (35mm disposable, 27-shot roll), SUPER-8 (K40 Super 8 cine), and the Camera Simulation vs Filters argument.
Samples




Frequently asked questions
Do I really have to wait 20 seconds?
Yes. The reveal is part of the camera fiction. Shake to 3× speed, but you cannot skip. If a Polaroid app doesn't make you wait, it isn't simulating instant film — it's applying a Polaroid-looking filter to a photo you already took.
Is the 20-second reveal random each time, or the same every time?
The same every time. The reveal is deterministic — driven by a seed frozen at capture. Same seed, same develop, byte-identical on replay. First view triggers the animation; the app remembers the final frame afterwards.
Why is the roll capped at 8?
A real SX-70 pack held 8 shots. POLAROID-90 uses the same limit. When you hit 8, the pack is empty and you load a new one.
Why does the flash look different from the ambient shots?
Because real Polaroids did too. POLAROID-90 ships two LUTs — an ambient warm/greenish/muddy grade and a cool high-key plasticky flash grade. The flash LUT is applied only to captures where the burst fired. A filter can't do this because it doesn't know whether the flash fired; it just gets pixels.
Can I import a photo and make it look like a Polaroid?
Not into POLAROID-90. Roll cameras refuse imports — the develop-in-place fiction requires a shot to come through POLAROID-90's own viewfinder. If you want a Polaroid-style filter for existing photos, use a filter app.
Is POLAROID-90 free?
No. POLAROID-90 is a paid in-app unlock.
Published by Afterhours Camera. Reviewed . Corrections and questions: bricksandcanvas@gmail.com.
