# Passing Views

An optical print study using two oval paintings by Iana Kochu. A small step to the side makes a different painting visible in the same walnut frame. This is a browser simulation of a fixed slit screen over a printed image.

[Open the study](./index.html) · [Print the plates](./plates.html)

## Registering the two paintings

Both photographs remain as supplied. I aligned the painted ovals to a common 132 × 202 mm aperture using a centered inscribed crop, independent horizontal and vertical scaling, and a small row-dependent horizontal adjustment. The source ellipse center and radii in photo pixels are (813, 526), (295, 440) for *Quiet Face I*, and (731, 550), (244, 365) for *Tidal Oval*. The horizontal adjustments are 9 px and 2 px, respectively, at the top of the crop, reversing at the bottom. This alignment deliberately trims some of the irregular outer edges. It keeps the pale blue fabric, the hanging support and the room out of the visible oval. The rear sheet remains rectangular, so there is source content outside the intended oval opening. The walnut frame, linen, wall, shadows and finish are rendered surroundings.

## How the screen works

The rear print contains alternating 0.8 mm strips of the two registered photographs at 10 px/mm. The front SVG contains 83 clear vertical slits between opaque bars. Its 1.5915 mm pitch compensates for the finite 450 mm eye distance so the projection onto the rear print matches the 1.6 mm rear period. Each clear slit is about 0.7321 mm wide, 46% of the front pitch.

For angle θ, front coordinate x, gap g and eye distance D, the point at the rear plane is `(1 + g / D)x − g tan(θ)`. The eye moves laterally along the line 450 mm from the screen. The canvas integrates the portions of each output pixel visible through the fixed slit and reads those portions from the exported interlaced PNG. It fills the closed area with a matte charcoal finish. At the center each slit exposes two half-width glimpses, giving the visible divided surface. The label reports the aperture-weighted share of open rays reaching each source, independent of pigment brightness. The CSS tilt and wall are presentation.

[Lanman, Hirsch, Kim and Raskar, *Content-Adaptive Parallax Barriers*, MIT Media Lab, 2010](https://www.media.mit.edu/publications/content-adaptive-parallax-barriers-optimizing-dual-layer-3d-displays-using-low-rank-light-field-factorization/) describes fixed slit arrays as an antecedent to the paper’s adaptive two-layer LCD approach. This study implements the static slit geometry.

## Bench parameters

| Parameter | Value |
| --- | --- |
| Rear image | 136 × 206 mm, 1360 × 2060 px |
| Front active field | 132 × 202 mm, centered over rear |
| Screen-to-print separation | 2.4 mm between printed surfaces |
| Design eye distance | 450 mm perpendicular to front |
| Nominal left and right positions | ±75 mm laterally, approximately ±9.462° |
| Rear strip pitch | 0.8 mm per view, 1.6 mm per pair |
| Slit pitch and width | 1.5915 mm and 0.7321 mm |
| Registration allowance at the ideal endpoint | ±0.032 mm shift on the rear plane before ideal geometric leakage begins |

Print the rear on opaque stock and the mask on transparent stock with dense black bars. Use the printable plate’s registration frames and 50 mm rules to align both sheets at actual scale. A centered 132 × 202 mm oval cut into an opaque mat covers the surrounding print. Start with one eye, an even light source and the geometry above. The 2 mm rear bleed extends beyond the front active field.

The browser model assumes parallel planes, a point eye, ideal opaque bars and transparent slits, and the stated viewing distance. Print spread, imperfect mask opacity, misregistration, viewing distance, two eyes, glare and lighting of the rear surface can alter contrast or introduce leakage. The aperture width and viewing distance make this a close, single-viewer geometry. The CSS surrounds and the rendered luminance are illustrative. A 0.10 mm horizontal registration error would put about 9% of each slit’s opening on the other view at the nominal endpoints in this model. The physical object remains unbuilt.

## Checks

The model reports the following open-ray shares at the three exported positions.

| View | Quiet Face I | Tidal Oval |
| --- | ---: | ---: |
| Left, −9.462° | 100% | 0% |
| Center, 0° | 50% | 50% |
| Right, +9.462° | 0% | 100% |

The three PNG stills and the art-only cover are captured from the same renderer. The cover uses the left position.

Isolated Chrome 156 verified three distinct canvas outputs, preset selection, the Home, Arrow Right, End and Space keyboard paths, touch at a 390 px viewport with no horizontal overflow, the no-script cover, and the local export URLs. The print template rendered as two A4 pages. A synthetic red/blue print injected at the rear PNG request gave 450:0, 189:186 and 0:444 strongly saturated red-to-blue columns in a single central canvas row. Those counts exclude mixed and blocked pixels. The fixture checks pixel selection separately from the readout.

With the Kochu Studio server running on port 4387, run `node verify.mjs` from this directory using an available Playwright installation. Set `PLAYWRIGHT_PACKAGE` to the installation path when it lives outside the workspace. Set `CHROME_PATH` to use a system Chrome executable. Add `--capture` to rebuild the rear PNG, mask and art-only stills from the two source photographs.
