BostonFSD: What It Takes to Turn a Drive Into a Video

Case study · AI and systems

From FSD Footage to System

BostonFSD: What It Takes to Turn a Drive Into a Video

I wanted to share what Tesla FSD was doing on Boston roads. Producing videos I could stand behind became a project of its own: privacy, screen-read data, scripted editing, and a workflow built with Claude.

Technical findings reflect the October 2 project review. Audience results were refreshed from the October 25 Pulse board and exports; the video selection was updated October 29. Later publication does not, by itself, resolve a previously documented technical issue.

Why I started BostonFSD

I started BostonFSD because I am fascinated by Tesla and wanted to share what I was experiencing firsthand. The channel has a small audience. It has not taken off on social media, and although I wanted to test whether it could become financially meaningful, the results in this review do not make a compelling case for the time involved. My interest in the technology has held up much better than the business case.

What keeps my attention is the whole experience. Scheduling service, buying accessories, navigating to a charger, paying for charging. Everything feels connected, and the steps are usually as simple as I would want them to be. The closest comparison I can make is an iPhone, but a car. It is one of the most thoughtfully integrated products I have used.

Then there is Full Self-Driving (Supervised). Watching it handle roads I know around Greater Boston has changed how I think about AI. I do not think many people appreciate how capable this technology has become in the physical world. Experiencing it regularly makes that progress tangible in a way that a headline or demonstration cannot.

It has also made me more deliberate about driving. I pay attention to what the car is doing, keep my phone away, and notice more of what is happening around me. Impatience, distraction, sudden lane changes. You start to appreciate how much everyone on the road depends on everyone else paying attention. I am still responsible for the car, and that responsibility extends to the people around me. Tesla requires active driver supervision; the software does not make my Model Y autonomous.

In July 2026, I started posting drives on YouTube and X under the name BostonFSD. Tunnels, work zones, highway merges, narrow streets. I wanted a record of what the car actually did, including the hesitation and the moments that needed my involvement. The standard was straightforward: support the claims with the footage, label what comes from another source, and show or disclose takeovers. When the screen cannot be read, say so. As this project taught me, setting that standard and consistently meeting it are different problems.

Filming was the easy part. A raw recording has to be searched for moments worth showing. Speeds have to be read off a screen. Faces, license plates, and private information on the display need attention. Location metadata and cabin audio have to be removed. Then the video has to be edited, described for two platforms, packaged, uploaded, scheduled, and tracked. Repeating that process turned a video project into an operations problem.

My degree is in finance, and I spent about four years underwriting digital asset risk. That work taught me to make decisions with incomplete evidence and to distinguish what I know from what I am assuming. I brought the same habit to this experiment, including the question of whether the channel deserved the time I was putting into it.

Claude, Anthropic's AI model, wrote most of the code and ran much of the production workflow. I set the standards, made the editorial and privacy decisions, and published the videos myself. The system grew through that back-and-forth: notice a problem, explain it, build a fix, and check whether the fix actually worked.

The outputs take several forms. A Telemetry Cut is my long-form format: a whole drive, sped up when nothing happens and played in real time when something does, with a data overlay and a closing scorecard. A Short is a vertical video under a minute. Each drive or clip also produces a separate cut for X, a thumbnail, and a posting package, which is a folder holding the files to upload and the text to paste.

Two inputs, two production lanes

The footage arrives in two forms, and they need different work. The first is a native export from the Tesla app: a clip of about 30 seconds saved from the car's own cameras. The exports used in this project carry a telemetry bar along the bottom of the picture showing the gear, the turn signals, the speed, and whether the car reports that it is self-driving. The second is a cabin recording: a phone mounted behind the front seats filming an entire drive of 25 to 60 minutes. It shows the road, the steering wheel and the car's center display, and as shot it also shows the people in the car.

Those differences decide the design. An app export already carries its own evidence in the bar, so the clip lane is short: read the bar, find the event, remove the file's metadata, and build a vertical Short around the untouched picture. A cabin recording requires an extra step to read the display inside the frame, and the frame also contains private material. The long-form lane therefore starts with a privacy pass, then a screen read, and only then an edit.

Choose a lane

Interactive diagram, not a screenshot. Based on the pipeline as documented on 2026-10-01.

Clip lane Native Tesla app export

A short clip that already carries its own evidence. The lane reads it, strips it, and formats it.

  1. 01Input

    A Tesla app export

    About 30 seconds from one of the car's cameras, one file per camera. Current exports carry a telemetry bar along the bottom: gear, turn signals, speed and the Self-Driving state.

    Technical detail

    The camera behind each file is identified from the caption embedded in the file and then from the frame's geometry, never from file order. That rule exists because a package was once built with the front camera logged as the rear. Exports from 2025 have no bar at all and are not posted as FSD content, and some early 2026 exports show a bar without the state text, so engagement on those is an attribution and not a screen fact.

  2. 02Processing

    Read the bar and find the event

    The bar is read once for the whole clip to get the speed sequence and to confirm the Self-Driving state never dropped. Then the moment that matters is located on a sheet of frames.

    Technical detail

    The bar is cropped at 1 frame per second and tiled into one strip so it can be read in a single pass. A sheet at 2 frames per second locates the event, and a closer pass at 4 to 8 frames per second confirms the numbers that will reach the description. The software version is looked up by drive date in the vehicle log and attributed in the text.

  3. 03Check

    Numbers come from the bar, not from memory

    Any number in the description comes from the bar at the event frames. What I remember about the moment is logged as my account, and it never carries a number alone.

    Technical detail

    On one clip my caption said the car moved after a pedestrian's second wave. The bar showed it gathering speed about a second after the first. The description followed the bar and the difference was written down.

  4. 04Processing

    Leave the picture alone

    By default the export is not re-encoded. The untouched picture is the point. Only the file's metadata is removed.

    Technical detail

    Exports saved through the Photos app embed a GPS tag and my caption. Every published file is rewritten without metadata. A trim or a blur in this lane is an explicit decision made per clip, for example a pedestrian's head, and it is delivered with the exact command that applied it.

  5. 05Output

    An X video and a vertical Short

    The X version is the export itself with metadata stripped. The YouTube Short places the same picture on a vertical canvas with a title and a version label that includes the word Supervised.

    Technical detail

    The Short is 1080 by 1920. A single camera is centered, or the front camera is stacked over the rear. The thumbnail comes from a clean frame, never from the Short with text burned in.

Not in this lane: the tracked blur pass, the telemetry file, the cut recipe, the data overlay and the scorecard. A 30-second export of a public road does not need them.

Long-form lane Cabin recording

A whole drive that carries no evidence until the display inside the frame is read, and that is full of private material until it is blurred.

  1. 01Input

    A cabin recording

    A phone behind the front seats films the whole drive: the road, the wheel and the center display. It runs 25 to 60 minutes and includes cabin audio, a GPS tag and my caption.

    Technical detail

    The mount moves between drives and drifts within one, so the position of the display and the mirror is measured again on every file, on frames with a grid drawn over them. Reusing one drive's coordinates on another recorded a day earlier would have missed the display entirely.

  2. 02Processing

    Scope the drive

    Frames are sampled across the recording and laid out on contact sheets. Each is read three ways: what is on the road, what is on the screen, and what is private.

    Technical detail

    The result is a route log with a basis for every entry. A place named from a sign in the frame is marked observed. A place named from geography is marked inferred. Street names that cannot be read are left out of the copy.

  3. 03Processing

    Privacy pass and the privacy master

    Faces, plates, the mirror and the leaky parts of the display are blurred, the audio is dropped and the metadata is stripped. The result is a master copy. Nothing later is built from the raw file.

    Technical detail

    The mirror and display are tracked so the blur follows them. Faces are detected at two resolutions because one pass alone has missed people. Plates are found by text recognition on the road band of the picture. The display's media pane, route list, trip card and message pane are blurred inside the bezel while the speed and state stay visible.

  4. 04Processing

    Screen read into a telemetry file

    The speed and the driving state are read off the display in the footage, one to four times a second. Every row records how its value was obtained. A value that cannot be read stays blank.

    Technical detail

    Reading is layered because each reader fails somewhere: text recognition, a shape test for a lone 0 or 1, and digit templates learned from that drive's own confident reads. A read that implies braking over 1 g or acceleration over 0.5 g against its neighbours is discarded. Two passes are reconciled before anything renders.

  5. 05Processing

    Cut recipe and render

    A recipe file lists which seconds play at which speed: real time through events, faster through cruising, with the speed shown on screen. A script renders the cut, the overlay and the scorecard.

    Technical detail

    The recipe is a JSON file holding zones, a cold open, segment labels, event callouts, chapters and the scorecard with a basis sentence per score. The same master and a second recipe produce the shorter X cut. There is no manual editing step and no voiceover.

  6. 06Output

    Shorts and a thumbnail

    Two to four Shorts are cut from the master in a two-pane layout, cabin above and the display enlarged below. The thumbnail is a real frame under a fixed template.

    Technical detail

    Blur boxes are mapped into each pane after scaling, with a fixed box over the trip card because the enlarged display makes it legible. The thumbnail frame comes from the clean master, never from a cut with the overlay burned in.

  7. 07Check

    Verify the finished files

    Face detection runs again on every finished video. Every hit is boxed on a contact sheet and looked at. Metadata tags are checked on the output.

    Technical detail

    Zero identifiable faces is the passing result. Faces smaller than about 30 pixels have been passed by precedent and logged, which is a judgment call and is recorded as one.

Where the lanes converge

  1. Check finished files

    Output, privacy and unsupported claims are checked on the deliverables themselves.

  2. Build the package

    Videos, thumbnail and platform text, with all copy generated from one source.

  3. I publish

    Upload and scheduling stay manual, in YouTube Studio and on X.

  4. Reconcile state

    Tracker and folders are compared against what the platforms show.

Claude builds and runs the workflow. I capture the footage, make the privacy and editorial decisions, and publish.

The clip lane runs no tracked blur pass, produces no separate telemetry file, and ends with no scorecard. Those are differences in the implemented workflow, not a guarantee that a short road clip contains nothing identifiable. The plate miss discussed below exposed that distinction. What the two lanes share is the last stretch. Finished files are checked, a package is built, I publish, and the records are reconciled against what the platforms actually show.

One drive through the workflow

To make the long-form lane concrete, I will follow one drive from recording to publication. On 2026-09-25, at the evening rush, I recorded a drive from a parking space at Wellington Circle Plaza in Medford to Winthrop. I chose it for this article because its package is complete on disk, because it was the first drive built end to end in the current package shape, and because it was a hard case. The low sun washed out the car's screen for most of the drive, which makes it a better test of the method than a clean one would be.

The source is a single 4K phone recording a little under 25 minutes long. Everything after that is a chain of files, each built from the one before it, and none of them is edited by hand in a video editor. The edit is a script. A recipe file says which seconds of the source play at which speed, and a command-line tool called ffmpeg renders the result.

One drive, file by file

The Wellington Circle to Winthrop drive, recorded 2026-09-25. Excerpts are taken from the package's own files, shortened and with private values removed.

1Source recordingone .MOV fileMy step

A single phone recording of the whole drive. It is the only input, and it is never published.

Why it is built this way. Everything private about the drive is in this file: faces, the display's personal panes, a GPS tag, my caption and the cabin audio. Treating it as unpublishable by definition is what keeps a raw export from ever reaching a platform.

What the probe of the file recorded

video      3840x2160 HEVC, 29.97 fps
duration   1499.6 s
audio      present (stripped downstream)
GPS tag    present (value withheld here)
caption    2026-09-25. Chipotle at Wellington Circle Plaza to
           Winthrop during rush hour. Software 2026.27.10.
           FSD v14.3.10.

The software version enters the project here, from my caption. It is an attribution, not something read from the drive screen.

2Privacy master1080p video, blur baked inClaude’s step

A 1080p copy with every blur burned into the pixels, no audio and no metadata. Every later file is rendered from this one.

Why it is built this way. Doing privacy once, upstream, means a Short or an X cut cannot forget a blur. It also means a privacy mistake in the master reaches every output, which is why the finished files are checked again at the end.

Blur boxes on this drive, from the package notes

display media pane          whole drive
route list and map          first 9 s
map pane                    from 1200 s to the end
passenger, right edge       every window a head shows
driver, left corner         every window a head shows
rearview mirror             tracked, whole drive
faces outside the car       every detector hit, held 0.5 s either side
license plates              every plate text recognition can read

The plate pass logged 250 plate reads across the drive and chained them into tracks. The plate strings themselves are not kept.

3telemetry.csv5,996 rows, four per secondClaude’s step

One row every quarter second. Each row holds a speed or a blank, a label saying how the speed was obtained, the driving state, and a derived acceleration.

Why it is built this way. The source label is the point of the file. A number on the overlay can be traced to a row, and the row says whether it was read, filled from a second pass, held from an earlier read, or absent.

Six rows from I-93 South, as the screen washes out

t (s)mphsourceheldsince read (s)stateaccel (g)
276.0046read·0.00Self-Driving-0.041
278.2547read·0.00Self-Driving+0.091
278.50·hold470.25Self-Driving·
283.00·hold474.75Self-Driving·
287.00·hold478.75Self-Driving·
287.2538read·0.00Self-Driving·

Columns shown are a subset. The value in the held column is the last real read carried forward. It is not a new observation.

4Cut recipea JSON file per platformClaude’s step

A text file that defines the edit. Zones say which source seconds play at which speed. Events, chapters and the scorecard are listed with their wording.

Why it is built this way. Because the edit is data, it can be reviewed like data. I can see that the merge onto I-93 plays in real time and that the highway plays at 16 times speed without watching the video, and a change is a one-line diff.

From the YouTube recipe

"src_start": 3.0,  "src_end": 1325.0,
"zones": [
  [3, 20, 3],  [20, 36, 4],  [36, 70, 12],
  [70, 90, 1],            // out of the lot, real time
  [196, 214, 1],          // the I-93 merge, real time
  [214, 400, 16],         // highway
  ...  28 zones in all
],
"events": [
  {"t": 204, "dur": 6, "label": "MERGES ONTO I-93"},
  {"t": 1318, "dur": 5, "label": "THE CUT ENDS HERE · ONE
    TAKEOVER NEAR HOME, AFTER THE CUT"}
]

Lines beginning with // are my annotations for this article. They are not in the file.

5Rendered videosYouTube 4:15, X 1:53Claude’s step

A script turns the recipe into one render command. It trims, retimes and joins the master, burns the overlay from the telemetry file, adds the scorecard and a music bed, and writes the chapter list.

Why it is built this way. One master and two recipes give two platform versions with no second privacy pass and no second screen read. The chapter list is generated from the final cut, so it cannot drift from the video.

Chapters written by the render, used verbatim in the description

0:00 Cold open: it pulls itself out of the space
0:13 Out of a parking space at Wellington Circle
0:26 Out of the lot toward Boston
0:57 Onto I-93 South
1:28 The Zakim Bridge at rush hour
1:44 Two tunnels to East Boston
2:04 East Boston signals
2:35 Under the overpass, a stop sign, a red
3:26 East Boston streets
3:55 Into Winthrop and the scorecard

The music is a generated bed. The licensed playlist I decided on has not been assembled.

6Verification recordsdetector output and hit sheetsShared step

Face detection runs on each finished video at two scales. Every hit is boxed on a crop of the finished file and looked at.

Why it is built this way. The detector is a finder, not a judge. On this drive most hits were car parts, signs and pieces of the overlay. Two were real faces, 12 and 19 pixels across, passed under a 30-pixel precedent and written down as a preference I can overrule.

The detector summary for this package

long-form YouTube  1.0x: frames 510  hits 22
long-form YouTube  1.5x: frames 510  hits 30
long-form X        1.0x: frames 225  hits 10
long-form X        1.5x: frames 225  hits 13
Short 01           1.0x: frames 40   hits 3
Short 02           1.0x: frames 72   hits 1
Short 03           1.0x: frames 90   hits 2
(every hit looked at on the hit sheets)

File names are shortened here. A hit count is a count of things to look at, not a count of faces.

7Platform files_YT.txt and _X.txtClaude’s step

Two text files generated from one copy source. Each lists every field of its upload form in the order the form asks for it.

Why it is built this way. I paste from top to bottom and do not have to decide anything at the upload screen. Blockers sit at the very top, so a package that should not be posted yet says so before the title.

The top of the generated YouTube file

BOSTONFSD | YOUTUBE | 2026-09-25_wellington-winthrop_v14.3.10
Upload:    2026-09-25_wellington-winthrop_v14.3.10_YT.mp4
Thumbnail: 2026-09-25_wellington-winthrop_v14.3.10_YT-thumb.jpg
Schedule:  2026-10-08 17:00 ET (proposed ...); E slots

BEFORE POSTING
- Replace placeholder(s) before posting: [LONG-FORM URL]

TITLE
Tesla FSD from a parking space to Winthrop at rush hour:
I-93, the Zakim, two tunnels | v14.3.10

This is the file as it stands on 2026-10-02, after the video went public. The proposed slot and the placeholder line were never updated, which is the record trailing the platform.

8Manual publishingYouTube Studio and XMy step

I upload the files, paste the fields, set the schedule, and add the end screen and pinned comment. Nothing in the pipeline can do this for me.

Why it is built this way. Keeping the last step manual keeps the final decision on every public claim with me. It also means the system's records only become true when I act, so they have to be reconciled against the platform afterward.

State on 2026-10-02

YouTube   public, 4:15, checked on the channel page
folder    under posted/
text file still proposes 2026-10-08, placeholder unresolved
X post    not verified for this article

Platform state was read from the public channel page, not from a private analytics export.

Two details of this drive show why the chain matters. The first is the ending. The cut stops on a main road before my turn, and the last 174 seconds of the recording appear in no version. That stretch includes my one takeover of the drive, near home. Leaving it out is a privacy decision, but leaving it out silently would have turned a privacy decision into a misleading claim. So the video says it on screen at the cut point and again in the description: no takeover in the cut, one near home after it.

The second is that the YouTube and X versions are the same drive rendered from the same privacy master with two different recipes. The YouTube cut runs 4:15. The X cut runs 1:53, with everything at 40 times speed except four moments in real time. Neither required anyone to re-blur a face or re-read a number, because those steps happened once, upstream.

Privacy is part of production

A cabin recording leaks in more ways than I expected. My face shows in the rearview mirror and at the edge of the frame when I lean toward the screen. A passenger sits at the other edge. License plates fill the windshield in traffic. The car's display can show messages with contact names, a route list that exposes where a drive ends, and a card labeled Home. The file itself carries a GPS tag and my caption, and the audio track carries whatever was said in the car.

The first rule came from a draft I rejected. An early version cropped the picture to remove me from it. That worked, and it also removed the steering wheel and half the cabin. Keeping the wheel and cabin visible preserves context, so I asked for blur instead of crop, with the blur covering what is identifiable. The wheel alone cannot establish that a driver is attentive. An oversized blur reads as censorship, which works against a channel whose entire pitch is that it shows you everything it can.

Blur boxes cannot be placed by eye and trusted. The working rules record a day, 2026-09-01, when four hand-placed boxes missed in a single pass. The phone mount also moves, between drives and within them, so a box that covers the mirror in minute one can be covering the dashboard by minute twenty. The pipeline handles this with tracking, which means locating the same object, such as the mirror or the display, frame after frame so the blur follows it. Faces are found by a detection model, plates by text recognition on the band of the picture where the road is, and the leaky panes of the display are blurred inside its bezel while the speed and the driving state stay visible.

Where the privacy pass blurs a cabin frame Schematic of a cabin recording frame. Seven numbered zones are blurred: the rearview mirror, the driver’s corner, the passenger’s edge, faces outside the car, license plates on the road band, the display’s media pane, and the display’s map pane. One zone, the speed and driving state on the display, is deliberately left visible. road band wheel stays in frame 30 mph · state 1 2 3 4 5 6 7 8 blurred in the master deliberately left visible Explanatory diagram, not a frame from a video
  1. 1Rearview mirror. Tracked for the whole drive, covering the glass only.
  2. 2Driver's corner. Boxed in every window where my head enters the frame.
  3. 3Passenger's edge. Boxed whenever a head shows, larger during a lean toward the screen.
  4. 4Faces outside the car. Every detector hit, enlarged and held half a second either side.
  5. 5License plates. Every plate that text recognition can read on the road band.
  6. 6Display, media pane. Blurred for the whole drive.
  7. 7Display, route list and map. The route list for the first 9 seconds, the map for the last stretch toward home.
  8. 8Display, speed and state. Left visible on purpose. It is the evidence.
Diagram Drawn for this article from the Wellington package notes, 2026-10-02Where the privacy pass blurred the Wellington drive. An explanatory diagram, not a frame from a video.

Every file that leaves the pipeline is written with its metadata stripped and without the cabin audio track. Then comes the step I consider the most important one in the whole system. Detection is run again, on the finished output, and every hit is put on a contact sheet and looked at. Most hits are not faces.

Screenshot Verification record for the Wellington long-form, generated 2026-09-29. Six of 52 tiles selected for this articleSix tiles from the face-check sheet for the finished Wellington cut. Each red box is something the detector flagged on the output: a bollard, a brick wall, the overlay's own text, the overlay's speed gauge, a sign pole and a windshield sticker. None is a face. The sheet exists so that a person looks before anything is called clean.
What this supports

That detector hits are reviewed and that most are false positives. It does not show that the video contains no identifiable person.

Privacy limits and documented misses

I am not showing a before and after here. The before is the private material, and a slider that reveals it would defeat the point of the section. What I can show is the limit of the method, because automated detection has documented misses in this project. A single low-resolution face pass missed people that a second, higher-resolution pass found, which is why cabin recordings now get both. A tracker once held a blur box in its old position when the phone zoomed, and for that stretch the next-turn card sat exposed on a first cut. A first sweep for plates on one drive found two of the eleven windows that needed a blur. On the Wellington output, two faces remain unblurred because they are 12 and 19 pixels across, under the 30-pixel line an earlier package set for not identifiable. And while the stills for this article were being prepared, a readable plate turned up in a published Short that the plate pass had not covered. The still shown here has an added blur, and the miss is logged as an open item.

A clean detector report is therefore not proof that a video contains nothing identifiable. It is one control. The look at the output is another. Neither is a guarantee, and I would rather say that plainly than imply the pipeline is airtight.

A screen read is not a vehicle data feed

The overlay on a Telemetry Cut shows a speed, a driving state, and a small trace of acceleration and braking. It would be easy to assume those come from the car's computers. They do not. Telemetry here means data about the car over time, and mine is produced by optical character recognition, or OCR, which is software that reads text out of an image. The pipeline crops the car's display out of the phone recording and reads the digits, four times a second on this drive. It is a reading of a picture of a screen.

Footage Finished YouTube cut, Wellington Circle to Winthrop, recorded 2026-09-25A frame from the finished Wellington Telemetry Cut at output time 00:43. The speed, 30 mph, was read from the car's display in the footage. The version in the header is attributed, and the trace at right is labelled as derived from speed. The mirror, the passenger at the right edge and part of the display are blurred in the published video.
What this supports

That the overlay presents a screen read and labels its derived trace. It is a presentation example, not independent validation of each displayed value.

That distinction changes how each value should be trusted, and I ended up sorting what the overlay shows into five kinds of evidence. Underwriting taught me to keep an observed fact, an attribution, and a calculation in separate columns, and this is the same discipline applied to a dashboard.

Five kinds of evidence on one overlay

Data from the Wellington drive's telemetry file, source seconds 262 to 290 on I-93 South. Recorded 2026-09-25. A reading of a filmed screen, not a vehicle data feed.

FSD v14.3.10 (Supervised) · HW4 · 2026.27.10 attributed, not read from the drive screen

Speed read from the display, four samples a second

Each dot is one read. Where there is no dot, there was no read. Nothing is drawn through the gaps.

Speed read from the display, four samples a secondDots mark 54 speed reads between 38 and 47 miles per hour across 28 seconds. There is no read from 278.50 to 287.00 seconds. The last value, 47, is held for 8 seconds and then the overlay shows a dash. Reads resume at 38 miles per hour.3035404550262266270274278282286290mphseconds into the recordingheld from the last read, 8 sdash: NO SCREEN READ41, filled from the second pass

Screen washed out. No read from 278.50 to 287.00. The overlay holds the last value for 8 s, then shows a dash.

The hollow dot at 268.00 is a value filled in from the second reading pass: 41, between reads of 44. The merge script's own notes list that second-pass read as a misread. It reached the file anyway, and so did another just before this window, at 261.00, which reads 2 mph between two reads of 41. Both turned up while this chart was being prepared. They are still in the file.

Acceleration and braking, derived from the speed reads above

Calculated from the change in read speed. Not an accelerometer. Blank where the reads are too sparse to support a calculation.

Acceleration and braking, derived from the speed reads aboveDerived acceleration values between minus 0.08 and plus 0.09 g, plotted only where enough speed reads exist. Blank from 278.50 to 287.50 seconds.-0.10+0.1g
  • Read in that sample
  • Filled from the second pass
  • Held from the last read, up to 8 s
  • No read, overlay shows a dash
  • Derived from speed

Directly read A value recognized in that sample.

The speed digits were read from the display in this frame. On this drive 1,852 of 5,996 samples carry a speed. Most came from text recognition. A lone 0 or 1, which text recognition tends to skip, came from a shape test, and a small number came from digit templates that are kept only where a text-recognition read within one second agrees.

On the overlay
The large speed numeral.
In this window
Second 272.50: 47 mph, source label read.

Attributed Taken from a record outside the frame.

The FSD version and the software build are never read from the drive screen, because the car does not print them there. On this drive they come from my caption embedded in the recording and from the vehicle log, which keeps a dated window for each version. The log notes that this version had not yet been read off the car's Software screen.

On the overlay
The header line: FSD v14.3.10 (SUPERVISED) · HW4 · 2026.27.10.
In this window
v14.3.10 on 2026.27.10, per my caption of 2026-09-25 and the vehicle log.

Derived Calculated from other values.

The acceleration and braking trace is computed from how the read speed changes over time. It is not measured by an accelerometer and it does not come from the car's logs. It inherits every weakness of the speed reads beneath it, and it is blank wherever those are too sparse. On this drive the derived values stayed between minus 0.30 and plus 0.24 g.

On the overlay
The small trace labelled ACCEL / BRAKE · DERIVED FROM SPEED.
In this window
Second 277.00: minus 0.082 g, calculated from reads of 46, 45, 45, 45 and 44 mph.

Uncertain Shown, but not a fresh or direct observation.

Four things belong here. A held value is the last real read carried forward for up to 8 seconds, which is a display rule in the cut script and not a new reading. The driving state on this drive was read from the blue tint of the path the car draws ahead of itself, because the Self-Driving label had washed out to white, so it is an indirect cue. Reads that fail a check are discarded: on this drive 6 as physically implausible, 9 as glare, and 7 template reads that had no agreeing neighbour. And a value filled from the second pass rests on that pass alone, which is how the two misreads described under the chart got in.

On the overlay
A speed that stays on screen through a short gap, and the STATE label.
In this window
Seconds 278.50 to 286.25: the overlay still shows 47 mph, held from the read at 278.25.

Unavailable No read. Left blank on purpose.

When a gap outlasts the hold, the overlay shows a dash and the words NO SCREEN READ. On this drive 4,144 of 5,996 samples have no speed, including both tunnels and most of the stretch where the low sun hit the screen. Unreadable is a valid outcome in the working rules. A guess is never rounded into the file.

On the overlay
A dash in place of the speed, with NO SCREEN READ beneath it.
In this window
Seconds 286.50 to 287.00: dash. The next read, 38 mph, arrives at 287.25.

Across the whole recording: speed on 1,852 of 5,996 samples (31 percent), highest read 47 mph. In this window: 54 reads in 113 samples.

Show the rows behind the chart, seconds 276 to 288
t (s)mphsourceheldsince read (s)stateaccel (g)
276.0046read·0.00Self-Driving-0.041
276.2545read·0.00Self-Driving-0.068
276.5045read·0.00Self-Driving-0.078
276.7545read·0.00Self-Driving-0.076
277.0044read·0.00Self-Driving-0.082
277.2544read·0.00Self-Driving-0.018
277.5043read·0.00Self-Driving-0.011
277.7543read·0.00Self-Driving+0.007
278.0042read·0.00Self-Driving+0.047
278.2547read·0.00Self-Driving+0.091
278.50·hold470.25Self-Driving·
278.75·hold470.50Self-Driving·
279.00·hold470.75Self-Driving·
279.25·hold471.00Self-Driving·
279.50·hold471.25Self-Driving·
279.75·hold471.50Self-Driving·
280.00·hold471.75Self-Driving·
280.25·hold472.00Self-Driving·
280.50·hold472.25Self-Driving·
280.75·hold472.50Self-Driving·
281.00·hold472.75Self-Driving·
281.25·hold473.00Self-Driving·
281.50·hold473.25Self-Driving·
281.75·hold473.50Self-Driving·
282.00·hold473.75Self-Driving·
282.25·hold474.00Self-Driving·
282.50·hold474.25Self-Driving·
282.75·hold474.50Self-Driving·
283.00·hold474.75Self-Driving·
283.25·hold475.00Self-Driving·
283.50·hold475.25Self-Driving·
283.75·hold475.50Self-Driving·
284.00·hold475.75Self-Driving·
284.25·hold476.00Self-Driving·
284.50·hold476.25Self-Driving·
284.75·hold476.50Self-Driving·
285.00·hold476.75Self-Driving·
285.25·hold477.00Self-Driving·
285.50·hold477.25Self-Driving·
285.75·hold477.50Self-Driving·
286.00·hold477.75Self-Driving·
286.25·hold478.00Self-Driving·
286.50·hold478.25Self-Driving·
286.75·hold478.50Self-Driving·
287.00·hold478.75Self-Driving·
287.2538read·0.00Self-Driving·
287.5038read·0.00Self-Driving·
287.7538read·0.00Self-Driving+0.000
288.00·hold380.25Self-Driving+0.000

The held column is what the overlay keeps showing. It is the last read carried forward, not a new observation. Blank cells are blank in the file.

The washed-out screen on this drive is why the numbers are what they are. Across the whole recording, 1,852 of 5,996 samples produced a speed, which is 31 percent. Through a short gap the overlay holds the last value it read. Once a gap runs past eight seconds, it shows a dash and the words NO SCREEN READ. I would have preferred a complete trace. I prefer an honest gap to an invented one.

The rule for any number that reaches a title, a description, a thumbnail or the overlay is two independent confirmations from the footage, or one source from outside it, such as the Tesla app's trip history. The word independent is doing real work in that sentence. On this drive, two reading passes agreed within 2 mph on 81 of the 87 seconds they shared. That is useful, and it is weaker than it sounds, because both passes read the same pixels of the same recording. Agreement between them shows the readers are consistent. It does not show the number is true.

Footage Finished YouTube cut, Wellington Circle to Winthrop, recorded 2026-09-25Output time 01:52, inside the I-93 tunnel. The speed is absent: a dash, with NO SCREEN READ beneath it. The state label is still present and reads SELF-DRIVING. This is not a frame where every field is unavailable.
What this supports

That a missing speed is left missing. It does not by itself establish the driving state.

An open disagreement between my own records
  • The frame: the state label reads SELF-DRIVING, in a tunnel.
  • The telemetry file: the row for that second records the state as read from the path tint, not held.
  • The package notes: state reads are described as covering moving samples outside the tunnels.
  • The published description: it says the state label shows NO READ in the tunnels.

These do not agree for this frame. I have not gone back to the source frames to settle which record is wrong, so I am leaving the screenshot exactly as rendered and listing this as unresolved.

The same care applies to the scorecard that closes every long-form video. It scores five things from 1 to 5, in the same order each time, and each score carries a sentence stating its basis. It is my editorial judgment of one drive, in one car, with one driver.

Footage Finished YouTube cut, Wellington Circle to Winthrop, recorded 2026-09-25The closing scorecard at output time 04:08. Each score carries its basis in a sentence. The first line states the scope: no takeover in these 22 minutes, and one near home after the cut.
What this supports

That the scorecard is an editorial assessment with stated reasons. It is not a safety rating, a controlled benchmark or a representative measure of FSD performance.

It is not a safety rating, a benchmark, or evidence about how the system performs in general. The interventions line counts the times I took over within the cut. It does not record why, and a takeover by itself establishes nothing about what the car would have done next.

Every failure became a rule

The project has a rulebook, and nearly every rule in it has a date and a failure behind it. I think that is the most transferable thing I built. A principle such as only report what the screen shows did not prevent a bad number from reaching publish-ready copy. A control that names a mechanism, such as two independent confirmations, could be checked, and so it could fail visibly. In underwriting terms, the first is an intention and the second is something you can test.

About the reconstructed records

One caveat about the record itself. On 2026-09-01 I deleted a Claude project to consolidate my work, and the original documents went with it. The rulebook was rebuilt that day from retained notes. Incidents dated before then are marked reconstructed below, because the account survives but the original record does not.

Incidents and the controls they produced

Documented project incidents, not benchmark results. Record status is stated for each.

01A number looked plausible2026-07-07Reconstructed record
What failed
A navigation distance was logged as a screen read of 5.2 miles. The pixels supported 3.2. The wrong figure reached copy that was ready to publish.
How it was detected
By arithmetic, not by a second look at the number. Adding up the turn list for the route did not produce 5.2.
What changed
Any number that reaches a title, description, thumbnail or overlay now needs two independent confirmations from the footage, or one source from outside it. Unreadable became a required, valid outcome. A wrong number that does get out is corrected in public, in the description, not edited away.
What limitation remains
The rule is applied by whoever is doing the reading. The build check can confirm a description has the right form. It cannot confirm that a number in it matches the footage.

Record. The rule and the figures are in the working rules as rebuilt on 2026-09-01. The original session record was lost, and the detail of how it was caught comes from the project handoff written on 2026-10-01.

02The screen reader dropped a digit2026-09-17Documented at the time
What failed
On crops from a 1080p master, text recognition returned 7, 8 and 9 for speeds of 17, 18 and 19, each with full confidence. Blur had joined the thin leading digit to the edge of the display. A confident answer was a wrong answer.
How it was detected
The working rules record the tell: a lone, confident single digit sitting between two-digit neighbours. How it was first noticed is not in the record.
What changed
Every crop gets a second opinion from digit templates learned on that drive, and a read that implies impossible braking or acceleration is discarded. The same day, on a different phone mount, the template reader failed in turn: 3 of its 234 reads agreed with the other pass. So two passes are now compared at every whole second and a reader the other contradicts is dropped for that drive.
What limitation remains
Every new mount has needed a new fix, and two readers of the same pixels can still share a blind spot. On the Wellington drive only 31 percent of samples produced a speed at all. And the reconciliation step has its own hole: while this article was being prepared, two values turned up in the Wellington file, at seconds 261 and 268, that had been filled from the second pass even though the merge notes list both as misreads. One reads 2 mph between two reads of 41. They are logged as an open item and not yet fixed.

Record. Recorded in the working rules on the day, with the affected values.

03The plan passed. The queue did not.2026-09-09Documented at the time
What failed
Ten packages were built, blur-checked and copy-final for a ten-day schedule. YouTube Studio held two scheduled uploads. The daily cadence was about to break.
How it was detected
I noticed two posts scheduled on each platform where I expected ten. The schedule had passed 9 build checks and 59 further checks. All of them read the plan and the files. None of them read the upload queue.
What changed
A validated schedule is not an uploaded schedule. After any rebuild, the Scheduled list in Studio and the scheduled posts on X are counted against the plan. If the counts differ, the plan is not live.
What limitation remains
The scripts still cannot see the queue. The control is a person, or Claude driving a browser, reading two web pages and counting.

Record. Recorded in the dated plan written that day.

04Posting copy drifted between files2026-09-09Documented at the time
What failed
On two packages, the description in the text file and the description in the markdown notes file no longer matched, and neither package named a playlist. Copy was being maintained by hand in more than one place.
How it was detected
By me, reviewing the packages before posting.
What changed
A package's copy now lives in one source file. A builder generates every platform text file from it and a check mode regenerates and compares before a package is called done. The builder also asserts the house rules, such as title length, the supervision wording appearing exactly once, and the subscribe line being present.
What limitation remains
The check enforces consistency and form. Older packages built before the rule keep their earlier shape until they are reopened.

Record. Recorded in the working rules as rule 17, with my complaint as its stated cause.

05A cleanup deleted the rendered videos2026-09-18Documented at the time
What failed
I deleted the content folder during a cleanup and emptied the Trash. Rendered videos were in it. Version control had been set up the day before, for text and code only, and there was no current backup of anything else.
How it was detected
Immediately. The folder was gone.
What changed
The text side came back from version control the same day. The videos had to be rebuilt. I exported the source clips again, the matches were re-rendered, and each rebuilt video went back through the face check.
What limitation remains
Rendered video still has no backup except the platforms themselves. Some posted packages now exist locally as text only, which limited what footage this article could draw on.

Record. From the 2026-10-01 handoff and the migration log of 2026-09-28. Consistent with what is on disk on 2026-10-02, where several older packages hold text and no video.

These are incidents from one small project, not benchmark results. A written rule is a control to keep testing, and several of the limits listed above are still open.

Build the handoff around the human

I upload and schedule every video myself. A scheduling service was considered early and declined, and that choice has a consequence. If a person is the last step, the system's final output should be shaped around that person's hands. By 2026-09-19 the packages had grown several folders deep, and I said that batch uploads were impractical when reaching each file took that much navigation. The current shape, settled on 2026-09-28, is flat. One folder per post. The top level holds only what I upload or paste, and everything else sits one level down.

One folder per post

Diagram of the documented v2.1 package layout, with the Wellington long-form as the example. Not a Finder screenshot.

One copy source

copy.py

The one place a package's words are written: titles, descriptions, tags, playlists, the pinned comment, the X post, blockers and open items.

Generates _YT.txt, _X.txt, _work/notes.md

One folder per post

2026-09-25_wellington-winthrop_v14.3.10/

Recording date, a short slug, and the FSD version from the vehicle log. File names follow the folder, never the title, because titles change.

_YT.mp4YouTube videoUpload

The finished cut. For Wellington, 4:15 at 1080p with the overlay and scorecard burned in.

_YT.txtYouTube fieldsPaste, top to bottom

Every field of the upload form in the form's own order: title, description, playlists, tags, recording date, location, related video, end screen, pinned comment. Blockers, if any, come first.

_YT-thumb.jpgThumbnailUpload

A real frame under a fixed template: a two-line question, one word in amber, no telemetry and no version text.

_X.mp4X videoUpload

The shorter cut from the same master. For Wellington, 1:53.

_X.txtX fieldsPaste, top to bottom

Title, description, post text with its character count, the optional follow-up post, and settings.

_work/ Everything that produced the five files above, kept out of the way.

  • notes.md
  • run.sh
  • build/copy.py and the drive's scripts
  • cut/ recipes and telemetry.csv
  • raw/ source recording
  • scope/ contact sheets
  • verify/ detector output and hit sheets

Why reducing clicks mattered. Reaching each file used to take several levels of navigation, repeated for every post. With the flat shape, a search for one suffix collects a whole batch of videos to upload, and each platform's text is a single file read from top to bottom.

Five states that sound alike

  1. 1

    Prepared

    A fact about files on disk

    The five files exist at the top of the folder.

    Claude builds them.

  2. 2

    Checked

    A fact about files on disk

    The build check reports clean, and the face check on the finished files has been looked at.

    Claude runs it. I decide anything flagged.

  3. 3

    Uploaded

    A fact only the platform can report

    The video exists in YouTube Studio as a private draft.

    I upload.

  4. 4

    Scheduled

    A fact only the platform can report

    It appears in Studio's Scheduled list, or among X's scheduled posts, with a date.

    I schedule.

  5. 5

    Public

    A fact only the platform can report

    Studio shows it as Public and the link opens for a signed-out viewer.

    The platform, at the scheduled time.

Which record wins

For YouTube publication state, YouTube Studio is the source. The tracker and the folder names are records that are reconciled to it. Three things should agree for every package: Studio's visibility, the tracker's status, and which state folder the package sits in. When they disagree, Studio is right and the other two are corrected.

This page contains no tracker. The live one is a private Notion database that Claude writes and I read.

All of the text in a package comes from one file. Titles, descriptions, tags, playlists, the pinned comment and the X post are written once, and a builder script generates a text file per platform with the fields in the order each upload form asks for them. The same script has a check mode that regenerates everything and compares it against what is on disk. It also asserts the house rules, including a YouTube title of at most 100 characters, an X post of at most 280, the supervision wording appearing exactly once, and the subscribe line being present. A placeholder link left in the text is raised as a blocker at the top of the file. The check verifies form. It cannot verify that a description is true, which is why the reading rules in the previous section exist.

The most useful distinction I learned to make is between five states that sound alike: prepared, checked, uploaded, scheduled, and public. The first two are facts about files on my computer. The last three are facts about a platform, and only the platform can report them. For YouTube that means YouTube Studio, the creator dashboard. My tracker and my folder names are records, and records drift. A reconciliation on 2026-09-09 found six videos on the channel with no tracker entry at all and five public videos whose folders still sat under scheduled.

The Wellington package showed the same gap in the October 2 review. The video is public. Its folder sits under posted. And its generated text file still proposes a 2026-10-08 slot and still lists a placeholder link to replace. Nothing is wrong with the video. The record simply trails the platform, which is the normal condition and the reason the reconciliation step exists.

On 2026-10-01 I asked for a further round of changes to cut clicks: related videos referenced by their actual title, the follow-up post on X dropped, tags and hashtags removed if they are not earning their place, long-form videos moved to Mondays, and the schedule structured and automated in the tracker. None of that was implemented in the October 2 project snapshot. The builder still requires tags and still emits the follow-up post. I mention it because a request is not a feature until the code and a test say so.

The financial experiment

I wanted to know whether the channel could become financially meaningful. The initial target was two subscribers per 1,000 views. The October refresh adds another month of evidence, but it still does not measure revenue, costs or hours worked.

BostonFSD Pulse: October 25, 2026

A dated analysis of YouTube Studio and X exports. These figures do not update automatically.

  • YouTube views

    58,883

    Video-level export, July 26 to October 23

  • Watch time

    157.2 h

    Same video-level export

  • Subscribers

    30

    Studio counter recorded in Pulse on October 25

  • Subscribers per 1,000 views

    0.73

    9 net additions / 12,399 views since September 28

What changed since September

The subscriber counter rose from 21 to 30. Over the same interval, Pulse records 12,399 additional views: about 0.73 net subscribers per 1,000 views, still below the target of 2. Nine people is a small sample, so this is encouraging movement rather than proof of a repeatable result.

Publishing became less consistent. Pulse records one upload from October 15 to 23 and about 44 channel views per day in that period. The drop in reach coincided with the gap in uploads. That supports testing a steadier schedule; it does not establish how many views a missing upload would have earned.

Explore X reach by week

Impressions are times posts were shown, not unique people or video views. Values are from the October 25 Pulse board; the final week is only complete through that export.

Week ending September 27: 10,544 impressions
Week ending October 4: 4,645 impressions
Week ending October 11: 2,169 impressions
Week ending October 18: 1,244 impressions
Week ending October 25: 238 impressions

Reply activity and publishing also declined. These events occurred together, but this comparison does not isolate their effects.

Compare video formats
FormatViewsWatch time
Shorts56,237134.2 hours
Long-form videos2,61323.0 hours

The format export totals 58,850 views, 33 fewer than the video-level export. These are separate reports downloaded October 25; their totals are shown as supplied, without inventing an adjustment.

The Lynnfield long-form contributed two attributed subscribers on 249 views. It is a useful example to examine, but two conversions cannot establish that its format is superior.

Sources, definitions and limits

Sources: YouTube video-level and content-type exports downloaded October 25, covering July 26 to October 23 as dated by Pulse; BostonFSD Pulse updated October 25; and its X weekly series. The Studio subscriber counter is distinct from subscribers attributed to individual videos. The September and October rolling export windows differ, so subtracting their headline totals would not measure growth.

Read click-through rates only above 500 impressions and retention only above 100 views. Revenue, costs and labor time remain unmeasured. Claims about lost views or the cause of a decline are hypotheses, not measured results.

The next useful test is whether I can maintain a manageable publishing schedule and whether viewers return or subscribe. Reach alone does not answer whether the work is worth its time. The refreshed evidence gives me a clearer question to test, rather than a business result to claim.

What I learned and what remains

The division of labor was clear by the end, and it is worth setting down exactly, because articles about building with AI tend to blur it in one direction or the other.

Who did what

Stayed with me

  • Filming: where to drive, where the phone sits, what the navigation is set to.
  • The standard: blur and not crop, read from the screen or say nothing, never imply unsupervised driving.
  • Every privacy decision, including which footage near home is acceptable and when a small face can stay.
  • Holding a clip back, and overruling the rules when I think they are wrong for a clip.
  • Uploading, scheduling and posting, by hand, on both platforms.
  • The final say on every public claim, and the decision about whether the channel is worth continuing.

Claude's contribution

  • The code: the render scripts, the screen readers, the trackers, the package builder and its checks.
  • Running the pipeline: probing files, sampling and reading frames, building the privacy master, rendering cuts and Shorts.
  • Reading the car's screen, reconciling passes, and marking gaps as gaps.
  • Writing titles, descriptions and post text in my voice, inside the house limits.
  • Keeping the tracker, reconciling it against the platforms, and analyzing the exports.
  • Maintaining the rulebook and the notes that let a later session pick the work up without me re-explaining it.
  • Debugging the environment: tool versions, file syncing, and the limits of browser automation.

Shared, with a stated split

  • Numbers in copy: Claude reads them from the screen. My recollection is logged as my account and never carries a number alone.
  • Takeovers: the screen decides what the copy says. Where my memory differs, the copy says which is which.
  • The software version: the vehicle log's dated window plus my confirmation, attributed in the text.
  • Open publishing calls: since 2026-09-04 Claude makes and logs them, with two limits. It never deletes a tracker row or a public video, and it never schedules for me unless asked.

What the project demonstrates, I think, is a set of specific capabilities and not a general claim about AI. It shows a workflow that checks privacy processing on the finished output, with documented misses that still need attention. It shows screen-read data with source labels that make it possible to inspect how a value was obtained, including values that should not have survived the merge. It shows scripted editing, one-source packaging with a build-time check, reconciliation of records against a platform, recovery from a real loss of files, and analytics read against thresholds set in advance. The thread through all of it comes from my working background more than from the tools: decide what counts as evidence before you need it, keep observation apart from inference, and write the control down where it can fail.

Technical limits still open in this review

Plenty remains unresolved. The software version on screen is an attribution from my vehicle log, never a read of the drive display, because the car does not print it there. Screen reads fail in glare and in tunnels, and every new phone mount has needed a new fix. Face and plate detection have the misses described above. Publishing is manual, and the scripts that validate a schedule cannot see the upload queue. The long-form lane runs only on my own computer. The audience numbers are small enough that one subscriber moves a rate. The music under the videos is a generated bed, because the licensed playlist I decided on has not been assembled. The Wellington telemetry file still holds two values that its own merge notes call misreads. And the tunnel frame discussed earlier is still an open disagreement between my own records.

Completed, partial, and only requested

Built and in use

  • Two production lanes run from one written procedure.
  • Privacy masters with tracked blur, and a face check on finished files.
  • Screen-read telemetry files with a source label per sample.
  • Scripted cuts with a data overlay and a closing scorecard.
  • The flat package and the one-source copy builder with its check.
  • Reconciliation of tracker and folders against YouTube Studio.
  • Two dated analytics boards.

Working, with known gaps

  • Turn-signal reads: obtained on one phone mount only.
  • Plate detection by text recognition: run on one drive.
  • Music: a generated bed. The licensed playlist is a decision, not a set of files.
  • Backups: text and code are in version control. Rendered video is not backed up.

Requested on 2026-10-01, not implemented

  • Related videos referenced by their actual title.
  • The X follow-up post dropped.
  • Tags and hashtags removed if they do not earn their clicks.
  • Long-form videos posted on Mondays.
  • A structured, automated posting schedule in the tracker.

Planned, not started

  • A fixed benchmark route driven on each new version.
  • A same-corner comparison across two versions.
  • A formal go or no-go on the channel, set for 2026-12-05.

If you want to see the output, the channel is at youtube.com/@BostonFSD and x.com/BostonFSD. I wrote about a similar arc in a hockey highlight project that turned into a system, and about choosing tools in why the best AI model depends on your workflow.

I started out wanting to post some driving videos. What I have at the end is a folder structure, a rulebook with dates in it, and a set of scripts that will not call a package finished while a check is failing. The videos are the visible part. The part I would build again is underneath them.

Considering a Tesla? You can use my Tesla referral link (code: erik750483). I may receive a referral reward if you make an eligible purchase or complete a qualifying demo drive through it. Check Tesla's current referral terms for eligibility and any available benefits.

Project records as of
Audience snapshot
Site build

This page is a static build. It has no live analytics, no tracker and no connection to the production pipeline. Nothing here uploads, schedules or publishes video.

FSD operation shown here is supervised. Scorecards and intervention counts are editorial records of single drives. They are not safety ratings.

Browse all writing