I Scanned My Gym Into a Database

Five minutes of walkthrough footage, 342 frames, two AI vision models reading them independently and then argued against each other. The complete equipment inventory of one gym — because you cannot program for equipment you never actually counted.

I Scanned My Gym Into a Database — Biohacking
0:00
/0:40
Sunday arms. The session that started all of this.

I train at the same branch every day and I could not have told you, with any precision, what is actually in it. Not really. I knew where *my* machines were — the eight or nine stations on my current program — and the rest of the floor was peripheral vision. Two hundred-odd pieces of equipment I walk past and never see.

That is a stupid way to run a training program, and it became obvious the moment I sat down to plan the next cycle. The plan I have been running for months was written before I ever set foot in this gym. It assumes equipment that may not exist here and ignores equipment that does.

So on Sunday, after arms, I walked the entire floor twice with the camera running — five minutes and forty-two seconds of continuous footage — and then pointed the same AI stack I use for everything else at the problem. Not to describe the gym. To enumerate it.

What follows is the complete inventory of Smart Fit La 10, produced by two independent vision models reading the same 342 frames and then reconciled against each other. It is the raw material for the next article, where this gets turned into an actual program.

🧠
What this is

The input: 2 walkthrough videos, 5m42s total, 1080p at 30fps.

The method: transcode → 1fps frame extraction → 342 frames → 39 labelled contact sheets → two independent AI vision passes (Claude + Codex) → reconciliation.

The output: every machine, rack, bar, plate and attachment on the floor, grouped by function, with what each one is actually for.

The point: the follow-up article rebuilds my training plan around what this gym actually has — replacing a program written for a gym I do not train in.

How You Actually Get a Machine to Read a Room

This is the part I find more interesting than the inventory, so it goes first.

Step one: transcode. The source clips came off the phone as HEVC in a .mov container — 173MB and 327MB. Before anything touches a model, they get normalised. The gym footage was also shot in portrait but stored landscape with a rotation matrix in the metadata, which means naive frame extraction silently produces sideways images. Worth checking, because a model reading a rotated gym will confidently describe furniture.

Step two: sample. Video is a terrible input format for vision models — massively redundant, since 30 frames per second of a slow walk are 29 frames of nothing new. One frame per second is the sweet spot for a walking pan: fast enough that nothing leaves the frame unseen, sparse enough to be tractable.

# normalise, then sample at 1fps and drop visually-identical frames
ffmpeg -i gym1.mov \
  -vf "fps=1,mpdecimate=hi=64*24:lo=64*12:frac=0.33" \
  -vsync vfr -q:v 2 frames/gym1_%03d.jpg

# 127 frames out of 3,802 packets — and mpdecimate dropped nothing,
# which tells you the pan never held still

Step three: batch into contact sheets. 342 individual images is a lot of calls. Nine frames tiled into one labelled sheet cuts that to 39, and — this matters more than it sounds — it gives the model *temporal context*. Consecutive frames of the same machine from three angles are far easier to identify together than apart. Every tile is burned with its frame ID and timestamp so any claim can be traced back to a specific second of footage.

A small production note, since the whole point is that this is reproducible: the Homebrew ffmpeg bottle on this machine ships without libfreetype, so the drawtext filter does not exist and the obvious labelling approach fails. Rather than rebuild ffmpeg from source for one filter, the sheets get composed in Pillow — which is faster, gives exact control over the label bar, and removes a dependency instead of adding one.

Step four: two models, independently. This is the load-bearing decision. I ran the identical prompt and the identical sheets through two different vision models with no knowledge of each other — the same two-model pattern I use on code, applied to pixels. One model alone gives you a confident inventory with no error bars. Two models give you something far more useful: a map of where they disagree, which is exactly where the uncertainty actually lives.

Step five: reconcile. Agreements get promoted to confirmed. Disagreements get flagged and resolved by going back to the specific frame. Anything neither model could read stays explicitly marked as unverified rather than being quietly guessed.

Where the two models disagreed — and why that is the valuable part

QuestionModel AModel BResolution
Bumper plate brandRead as URXRead UMAX, with 45 LB / 35 LB / 25 LB legibleUMAX — the second pass read the denominations too, so it was resolving more of the label
Strength-line manufacturerRead the stylised M as Matrix throughoutRead it as Movement on the selectorized lineUnresolved. Cardio and functional trainers are unambiguously Matrix. The pin-stack strength line carries a stylised M that genuinely supports both readings — plausibly a second line. Flagged, not guessed
Station labelsSpanish: Brazos, Abdomen y lumbarAlso Tronco, Piernas, plus English Back Extension, Triceps PressBoth. Spanish zone labels, English exercise placards — a mixed-language estate
Smith machinesCounted 3–4 unitsCounted 1Mirrors. That wall is fully mirrored; the conservative count is likelier correct. Needs a physical check
TreadmillsEstimated 15–25"At least 8"The second pass reported a deliberate lower bound. Rows continue past frame edge — true number is higher than 8, unconfirmed
Large tireMissed entirelyFlagged in the functional cornerCaught by the second pass only. The single best argument for running two

That table is the honest output of the exercise. A single-model inventory would have told me there are 3 Smith machines and URX plates, with the same confident tone it used for everything it got right.

The Inventory

Counts are deduplicated physical units, not frame appearances, with mirror reflections excluded. Where a row continues past the edge of frame, the number is a floor, not a total — marked "at least". Anything unreadable is marked as such rather than filled in with what a gym like this usually has.

1. Cardio

EquipmentCountWhat it is for
Treadmills (Matrix)At least 8Steady-state and interval running. The largest single block on the floor
Ellipticals / cross-trainers (Matrix)At least 8Low-impact cardio; moving handles add upper-body push/pull
Recumbent bikes (Matrix)At least 3Seated cycling, lumbar-supported. Useful for low-stress zone-2 work
Upright bikes (Matrix)MultipleConventional cycling
Stair climbers / ClimbMill (Matrix)At least 4Rotating stairs. Glutes, quads, hamstrings, calves under continuous load
Air bikes (fan resistance)4Fan wheel plus moving handles. Resistance scales with effort — the conditioning tool with no ceiling
Rowing ergometer1Full-body pull: leg drive, posterior chain, upper back. Brand unreadable

2. Free weights

EquipmentCountWhat it is for
Rubber hex dumbbells, two-tier racksAt least 15 pairsThe main dumbbell block. One end marked 80, unit not legible
Light hex dumbbells, vertical treesAt least 8 pairsIsolation and rehab loads. Rack positions numbered 1–6
Olympic / specialty bar carousel1 carousel, 7+ barsAt least 3 straight Olympic bars, 1 EZ-curl, 1 rectangular neutral-grip (triceps/football) bar, 2+ specialty bars
Fixed-weight barbell A-frame rack1 rack, 5+ barsPre-loaded straight barbells — curls, rows, presses without loading plates
Rubber tri-grip Olympic plates30+ individual20KG and 10KG legible; teal-centred. Loading bars, racks and plate-loaded machines
UMAX coloured bumper platesMultiple45 LB red, 35 LB blue, 25 LB yellow. Drop-tolerant for the platform
Plate storage trees1 standalone + integrated hornsPlate storage
Spring collars / clips~5 pairsIn a mesh container at the bar carousel
Squat racks / half racksSeveralUprights with J-cups, spotter arms, plate horns, integrated pull-up bars
Smith machine1 confirmed (possibly more)Guided-bar squats, presses, rows, calf raises
Olympic bench press stationsFlat + inclineBarbell pressing with uprights
Adjustable utility benchesAt least 4 (many more across floor)Incline/flat/decline dumbbell and barbell work
Flat utility benchesAt least 3Flat pressing, rows, step-ups, seated work
Preacher curl benches2–3Supported elbow flexion — biceps, brachialis
Wooden lifting platform1Deadlifts and Olympic-style pulls

3. Plate-loaded machines

A full yellow-and-black plate-loaded line — the Hammer-Strength-style equipment where you load Olympic plates onto lever arms instead of pulling a pin. Manufacturer not legible; possibly a Smart Fit-specific line.

EquipmentCountWhat it is for
Incline / horizontal chest press1+Converging press. Pecs, front delts, triceps
Shoulder press1Deltoids and triceps, some upper chest
High row / lat pulldown1+Twin independent lever arms. Lats, rhomboids, traps, rear delts, biceps
Seated row variantsMultipleHorizontal pulling, mid-back
45° sled leg pressAt least 4Quads, glutes, hamstrings. Also calf presses
V-squat / hack squat1Squat pattern with fixed path — quads, glutes, adductors
Hip thrust / glute drive1Loaded hip extension. Glute-dominant with hamstring assist
Standing glute kickback / hip extension1Unilateral glute and hamstring work
Plate-loaded leg extension1Quadriceps isolation

4. Selectorized (pin-stack) machines

The long machine hall. Stations are numbered for the Smart Fit app and colour-coded by body region — purple Piernas for legs, plus Brazos, Tronco and Abdomen y lumbar zone decals. Station numbers observed: 01–04, 20, 25, 26, 30, 40, 43, 50, 51, 52, 53. Stacks appear to run in roughly 4.5 kg increments to about 91 kg.

EquipmentCountWhat it is for
Chest press2+Horizontal pressing. Pecs, front delts, triceps
Shoulder press1+Vertical pressing. Delts and triceps
Rear delt / pec fly combo1Placard reads REAR DELT / PEC FLY. Reverse fly and pec fly on one frame
Lat pulldown / high row1+Lats, upper back, biceps
Seated row1+Horizontal pull, mid-back and rhomboids
Assisted pull-up / dip1Counterweighted knee platform. Scales bodyweight work down to achievable
Back extension1Erectors and posterior chain
Abdominal crunch + lumbar1Station 43 Abdomen y lumbar. Loaded flexion and extension
Triceps extension1Isolated elbow extension
Triceps press2Stations ~50 and ~52. Seated pressdown pattern
Biceps curl / preacher2Stations ~51 and ~53. Large preacher pads
Leg extension1Quadriceps isolation
Seated leg curl1Hamstring knee flexion, seated
Prone / lying leg curl1Hamstring knee flexion, prone — different length-tension curve
Seated leg press1Quads, glutes, hamstrings
Hip abductor1Gluteus medius and minimus
Hip adductor1Inner thigh
Torso rotation1Obliques and trunk rotation. Zone label Tronco

5. Cable and functional training

EquipmentCountWhat it is for
Dual adjustable-pulley functional trainers (Matrix)2 systems, 4 stacksAdjustable-height independent pulleys with integrated attachment boards and pull-up crossbars. The most versatile equipment on the floor
Four-station cable multi-gym (Matrix)1 system, 4 stacksLat pulldown, low row, and two high/low cable points
Cable crossover1Bilateral fly and press patterns across a range of angles
Attachment carousel + boards1 carousel, 12+ attachmentsLong angled lat bar, tricep ropes (3+), straight rotating bar, close-grip V handle, D-handles (6+), ankle/loop straps (4+), EZ cable bar, carabiners
FORMA functional rig1Overhead monkey-bar ladder, integrated squat bays, band pegs, plate horns
TRX-style suspension trainersMultipleBodyweight rows, presses, core, unilateral work at scalable angles
Multi-grip pull-up / dip tower1 + 3 integrated positionsPull-ups, chin-ups, dips, hanging core work
Stall bars / Swedish ladders3+ sectionsAssisted stretching, spinal and shoulder mobility, rehab, bodyweight drills

6. Functional and conditioning tools

EquipmentCountWhat it is for
Medicine / slam balls8–9 on tree rackThrows, slams, loaded carries, rotational power
Sandbags (LivePro)5–6, marked 15kgAwkward-load carries, cleans, squats. Unstable mass trains stabilisers
Kettlebells2 racks, 8–16 unitsSwings, cleans, presses, carries — ballistic and grind patterns
BOSU / balance domes3+Balance, ankle stability, core control
Stability / Swiss ballsMultipleCore, mobility, supported pressing
Large tire1Flips and strongman conditioning
Plyo boxes (soft, 50cm) + wooden boxMultipleBox jumps, step-ups, split squats
Aerobic step platformsAt least 7Step-ups, elevated lunges, deficit work, conditioning
Exercise / yoga matsMultipleFloor work, mobility, core

7. Facility

Not training equipment, but it constrains programming more than people admit — you cannot superset across a floor you have to cross twice.

ItemDetail
ZonesSuspended signage: cardio, libre, Piernas; a `smart grupal` class area
FlooringThree treatments — wood-look vinyl (machines/cardio), speckled rubber (free weights), heavy black matting under the leg-press row
MirrorsFull-wall runs across multiple zones, some with Smart Fit graphics
ScreensAt least 8 ceiling-suspended monitors over cardio
HydrationWall-mounted drinking fountains / bottle fillers, at least 2
StorageYellow locker bank
SafetyRUTA DE EVACUACIÓN signage (4+), fire extinguishers, dome cameras, first-aid signage
EnvironmentCeiling HVAC cassettes (4+), speakers (6+), wall clocks, floor-to-ceiling street-facing glass, Medellín valley views

What neither model could confirm

Stated plainly, because an inventory that hides its gaps is worse than one that admits them: exact treadmill, elliptical and bike totals (rows continue past frame); the manufacturer of the yellow/black plate-loaded line; all Matrix model numbers; whether the strength line is Matrix or Movement; the exact Smith machine count; dumbbell and plate weight ranges; and whether battle ropes, sleds or chalk exist anywhere on the floor. None of those are guesses in the tables above — they are absent from them.

Why Any of This Matters

The program I have been running for months is the Monster bodybuilding plan — a six-day split I wrote long before I trained here. It is a good plan. It is also a plan for an *abstract* gym, and it has been quietly colliding with reality: exercises prescribed on equipment this branch does not have, and a floor full of equipment the plan never mentions. Two plate-loaded leg-press variants, a hip-thrust station, four independent cable stacks, a stepmill and a rowing erg do not appear anywhere in it.

There is also a timing argument. I am three months into a protocol, a blood panel lands this week, and the next cycle steps the doses up. Running the same program into a new stimulus is the one thing you can be confident will not work — the body adapted to it months ago. New cycle, new plan.

So the next article does the actual work: take this inventory, take the Monster plan, and rebuild the split around equipment that verifiably exists, twelve metres from where I stand. Every exercise mapped to a specific machine on a specific floor.

This one just had to count them first.

Related Reading