Entry 011 / 41
Project Mercedes EQ
Date 2019
Location Barcelona, Spain
Coordinates 41°21'15.120"N 2°7'40.800"E
Status STUDY
Info
A phone that locks the car, sets two climate zones and shuts the car down.
Rebuilt from the 2019 film — its forty seconds, checked against twenty timed beats. The three‑pointed star, the EQ wordmark and the EQC photography are Mercedes‑Benz’s, not mine — an unsolicited, self‑initiated study, never commissioned by, shown to, or endorsed by Mercedes‑Benz.
The record
Four earlier passes of this app preceded this build: eqx11 (v1.1), eqapp (v1.2, the gesture layer), eqv13 (v1.3, “the film that computes”) and eqv2 (v1.3 plus the v2 motion layer).
The question the project set itself is written in three of those passes and nowhere on the live site: “The EQS already had a screen. This project asked a smaller question: what if the car sat on the same shelf as the lights and the thermostat — a room you unlock, warm up and recline from the phone in your hand, before you ever open the door.”
v1.1 modelled charging, and this build dropped it. Its constants named RATES [2.3, 7.4, 110] kW as SOCKET / WALLBOX / DC RAPID, ACLOSS 0.08 and DCLOSS 0.04, TAPER 40 kW above TAPER_AT 80 %, TIMEX 120 — “charge clock runs 120x” — and SEATW [0, 45, 75, 110] W for heated seats. The shipped constants block MK carries none of them. v1.1 also stated the rights more precisely: Mercedes-Benz AG named, the designation EQC 400 4MATIC named, the published figures cited — 80 kWh usable, 7.4 kW on-board charger, 110 kW DC peak — and the caveat “Modelled, not measured; no telemetry from a real car went into it”.
The gesture count changed between passes. v1.2 reads “THREE GESTURES RUN THIS CAR” and builds “the vocabulary, in three lines” — a drag, a tap and a three-second hold. v1.3 and this build read FOUR: the slide-to-lock was added.
The whole app is authored in the film’s own coordinate space — W 420, H 840, DUR 40: “the 2019 film is 1000x2000; 420x840 is that at 42%”.
The twenty beats are named and timed in the source: star 0.5, ghost 2.5, wordmark 4.0, eq 5.5, locked 7.0, unlock 10.0, welcome 12.0, cabin 14.5, cabin-hold 16.0, seats 18.0, seats-lit 19.5, interior 21.0, interior-hold 23.0, recline 25.5, recline-2 27.5, features 29.0, home 31.0, shutdown 33.0, countdown 35.0, power 38.0.
The six header pieces were registered on the three-pointed star by template-matching eq-1-star.png (80x80) against each one, so the drag reads as a single object growing outward rather than six stacked images. They cross-dissolve at 0.00, 0.14, 0.26, 0.40, 0.56 and 0.78, exactly two live at once with their opacities summing to 1; REST 0.78 is “where the film parks the header”. The comment says the star measures “~69px in every one of them”, while the denominators printed directly beneath it read 63, 68, 68, 68, 70 and 70.
The lock’s colour walk was sampled off the film: unlock walks red → orange → teal → blue (357° · 25° · 196° · 213°) and settles green, re-lock walks green → teal → red (124° · 185° · 356°), eased at p^1.6 “so the warm half lingers”. The padlock travels SLIDE_MAX 119 px — thumb centre 148 to 267, radius 21 staying inside the 293.6 box.
Three more measurements were kept exactly as read rather than tidied. The ghost EQ sits at 0.032 because “film peak luma 6/255 in this band — a stain, not a mark”; the car band at 33.0 s is held at 0.003 because it “reads 0.11 of 40.2 — a black band with a memory of the car”; and the film’s shut-down count is uneven, reading 3 until 33.9 s, 2 until 34.8 s and 1 until 36.4 s, where the live hold is a flat three seconds.
The energy model was checked by hand before it was trusted: “1260 + 300 + 180 + 250 = 1990 W → 23.02 kWh/100 km → 187.7 km from 43.2 kWh”, verified “at the donor’s own conditions” — amb 9°, driver 19°, passenger 20°, A/C on, fan 4, SOC 62 %, the v1.1 instrument’s defaults. 187.7 km never appears on screen: this build splits that single fan into two zones.
The motion is not CSS easing. Every continuous value rides a critically damped spring integrated analytically — “stable at any dt, never overshoots, and retargets mid-flight without a seam” — at stated rates in rad/s: interior 9.5, features 8.5, peek 9.5, done 12, label 11, recline 10, fan bars 15, range 7, “settle ≈ 5/w”. Opening takes 1.4 s, closing 0.55 s. Under prefers-reduced-motion the film is held at t = 23 s, its interior beat.
The exhibit does not play the film through. It runs to INTRO 7.0 s — the grille and LOCKED — and then a simulated hand operates the real app: “the exhibit leads with a USER, not a video … The full 2019 film stays one press away.”
The written apparatus was not removed, it was switched off. One line, ‘.eqapp-side{display:none}’ — “legend, transport and notes live in the backend now” — hides the transport and scrub, ten scene chips, a four-line gesture vocabulary and a seven-line legend. A second, ‘.eqa-gan,.eqa-gscrim,.eqapp-gstat{display:none!important}’, hides the annotation rings and the stat that reads “25 controls, 2 film-only plates, 4 gestures — each measured in the build at the size a thumb gets”. Only two in-screen buttons survive: THE HAND and THE FILM.
Behind that switch is a table of 27 interaction entries — 25 live controls and 2 film-only plates — each naming the element, what it does and the handler that runs it, with the two that have no handler drawn dashed and grey “so the overlay never implies an interaction the build cannot honour”. Every ring’s centre is hit-tested with elementFromPoint against the live DOM, and the minimum target is 32 px, “the smallest target a thumb should ever be asked to find. It is the ruler as well as the finger.”
Every press writes a costed line into that same hidden element — “NIGHT VISION ASKED · SHED UNDER SAFE MODE · 0 W DRAWN”, “A/C OFF · −300 W · FANS 0, LEVELS REMEMBERED”, “RECLINE · 0 W — comfort costs nothing here” — because “a press that no longer changes the draw must SAY it was shed, not sit inert — that was the v1.1 lesson.”
Three v1.2 repairs are recorded as the faults they fixed: the two stepper rows “used to be 42 tall on 33-unit centres, so the fan row stole 9 units off the bottom of the temperature row”; the drag strip “used to swallow the whole shut-down control”; and after a shut-down “every control was gated off and the screen was a dead end. A shut-down car wakes on a touch, like any other screen.”
The exhibit arms itself only once it is on screen — IntersectionObserver at threshold 0.35, a geometry check and a 1400 ms timer behind it “so the reader is never left staring at a still frame”.
The seat is traced, not drawn freehand: “seat, traced from the owner’s own SeatDesign.png (viewBox 0 0 200 152)”.
The page once carried six plates; mercedes2, mercedes3 and mercedes6 remain, and all three sit in directories stamped 1559430000 — 1 June 2019, 23:00 UTC.
This page’s own meta description says “charging, range, and vehicle status as one interface”. The build it describes is v1.1: the shipped app has neither charging nor a status screen.