← Back to demo

Work / Field Notes · Personal project

A tractor under management

A 2018 compact diesel that had run for eight years on my memory and one messy note. This is what it took to stop doing that — and why I went considerably further than the problem required.

Actual tractor cockpit: a procedural model of the machine, its mounted implements and recorded service status.

Fig. 01 / Actual software capture · Personal project. The tractor is a procedural model.

Inspect at full size ↗
Hour meter
350 hat the July audit
Since the last full service
170 hnearly three years
Fuel filter
31 moon a twelve-month interval
Parts catalog
445sections, mapped to the machine
The problem
Maintenance had happened, but the dated record could not prove what was current.
My contribution
I audited the records, defined the verification rules and built the cockpit around them.
Inspectable result
A working software view of due service and unknowns. No measured reliability improvement is claimed.

Evidence note: the three images below are actual captures of my personal software. The 3D tractor is a procedural model, not a photograph. The maintenance history is a dated account of the project, not a current service instruction.

The machine

A 2018 John Deere 1025R — a three-cylinder Yanmar diesel that punches well above its 24 horsepower. It runs a 120R quick-park loader, a 54D drive-over mower deck, a front-mount snowblower, and a rotation of three-point implements: carry-all, ballast box, single-shank ripper. Around 350 hours, at a steady five or six a month, year round. Mowing in June, moving material in October, throwing snow in January.

It is the most useful thing I own that isn't the house.

What the audit found

The last fully documented service was nearly three years and 170 hours ago. The fuel filter was thirty-one months into a twelve-month interval. The hydraulic filter — which the schedule wants changed at 50 hours and every 200 after — had, as far as any record could prove, never been changed. Eight years.

I had also never read the serial number plate, which on this platform gates which parts actually fit. There is a mid-run engineering break. I was one confident online order away from a box of wrong filters.

The full story of that afternoon is in the write-up. What follows is the thing I built afterward.

The tractor's service record, as the audit found itA timeline from 2018 to 2026: bought in 2018, one documented full service in November 2023 at 180 hours, and the audit in July 2026 at 350 hours. Below it, four service intervals: the fuel filters are 31 months into a 12-month interval, far past their limit; the air filters have used 170 of 400 hours; the engine oil was changed at some point that nobody dated; the hydraulic filter has no service record at all.ACTUAL CAPTURE · FROM THE MAINTENANCE LOG2018201920202021202220232024202520262027run on memory and one messy notenothing recordedBought · model year 2018Last full service · 180 hThe audit · 350 hInterval · where each one stood at the auditlimitFuel filtersevery 12 months31 months since the last changeAir filtersevery 400 hours170 of 400 hours usedEngine oil + filterevery 200 hourschanged since — no date anyone wrote downHydraulic filterevery 200 hoursno service record, ever
service timeline
Fig. 02 — The record the audit found. Actual capture: dates and hours from the maintenance log. Scroll to run it.

The cockpit

The machine now has a browser you can open. A 3D model sits in the middle of it, every implement clickable, and three things are true of it that were not true of the shoebox of receipts it replaced.

  • It knows what is due. An x-ray view drops roughly a dozen service markers onto the model — filters, fluids, grease points, the deck — each one green, amber or red off a due-status computed from the hour meter and the service manual, not from how I feel about it.
  • It knows what is wrong. A diagnose mode takes a symptom, lights the components actually implicated in it, and hands back a checklist referenced to the operator's manual. It is not clever. It is just the thing a good mechanic does in the first ninety seconds, available at nine at night in a cold barn.
  • It knows which parts fit. The complete factory parts catalog — 445 sections of exploded diagrams — is mapped to the machine. Built against an assumed serial range with both sides of the engineering break captured, because the plate is still unread. It is on the list. The system won't let me forget.

Why I wanted this at all

I did not build it because I wanted a maintenance system. I built it because I want to still be running this tractor in twenty years, and because the hours I spend on it are supposed to be the good hours.

Those turn out to be the same problem. A machine you don't understand becomes a machine you quietly resent — a source of low-grade dread, a thing that might fail on the weekend you actually needed it. Deferred maintenance isn't really about money. It's the slow conversion of something you enjoy into something you're avoiding.

So the useful thing a computer does here is not automation. It is that it holds the remembering, which is the part I am worst at and which costs the most when it fails. I get the enjoyable half of owning a machine — the work itself, in daylight, on my own schedule — and not the half where I lie awake doing arithmetic about a filter.

The technology that earns its place is the technology that hands you back attention. Everything I have built for myself follows from that, and this is the smallest, clearest case of it: a diesel engine, a service manual, and one fewer thing to carry around in my head.

The method, which is the portable part

Nothing here depends on it being a tractor. Three rules did the work, and all three came from running operations rather than from owning equipment.

Audit before you improve. An afternoon with the service manual and an honest look at the machine produced every finding above. The cockpit found nothing — it only made the findings hard to ignore afterwards.

Work you can't date gets a flag, forever. Rebuilding the record invited the tempting lie every backfilled system offers: write down what must have happened as though it were fact. Instead, undated work carries an amber verify flag until a real dated entry replaces it. The flags are ugly and I have not been in a hurry to clear them, which is itself information. When the dashboard says something is current, it is current — not probably fine.

A deferral is a decision, if you write it down. The overdue fuel filter didn't get changed that week either. The difference is one line in a log, with a date and a reason, and an overdue flag left standing where I can see it. Procrastination and planned deferral are the same inaction; what separates them is a timestamp and an owner.

How it's built

Plainly, and on purpose. The model is procedurally generated low-poly geometry drawn with Three.js, vendored rather than loaded from a network, so the whole cockpit is a single HTML file that opens with no server and no connection. The service data is structured text. A regenerator script rebuilds the file from that data using nothing outside the Python standard library, and a headless-browser probe confirms the scene actually renders — 119 meshes, exit zero — because a 3D view that silently fails to paint is exactly the kind of quiet failure I built the rest of this to catch.

Same reasoning as everything else here: no database, no vendor, no login. In ten years it will still open.

Where it stands

The project graded out at done — maintain only, which in my world is the highest state a system can reach. Not improving. Not in progress. Done, and now it just needs feeding.

I'll be honest about the ratio: the audit was worth doing and took an afternoon, and the cockpit took considerably longer and was, by any reasonable accounting, unnecessary. I built it because I enjoyed building it. Some of the best things I have made started as an excuse to keep working on something.

The snowblower's exact model is still unconfirmed until I read a decal. The serial plate is still unread. The machine is the same machine it was last spring — and the list of what I don't know about it is now written down where it can be crossed off.


The story of the audit → · The same pattern, pointed at a truck: the truck maintenance system.