The Problem Is Not That We Cannot Measure Feet

We can measure feet.

We have pressure mats, instrumented insoles, force plates, motion-capture cameras,
3D scanners, gait laboratories, trained technicians, and increasingly powerful
biomechanical models. In the right room, with the right people and the right budget,
human movement can be measured with extraordinary detail.

That is exactly the problem.

The measurement is often attached to the room.

For many people, personalized biomechanics begins with a referral, continues with an
appointment, and ends with one expensive snapshot. The equipment is centralized. The
expertise is centralized. The data is collected infrequently because every new
measurement costs time, travel, labor, and money.

A foot, however, is not a static CAD file. Loading changes with gait, fatigue, growth,
injury, footwear, and time. A system that can only afford to observe a person once may
produce a precise answer to an outdated question.

This is why I care about decentralization. I do not mean replacing clinicians with an
app or pretending a phone is secretly a force plate. I mean moving the first layer of
capture closer to the person, reducing how often someone must return to a centralized
lab, and making repeated measurement realistic while keeping expert judgment where it
matters.

That is the problem Visole is trying to attack.

The Idea Followed Me Home from Berkeley

Visole began with GlycoStep, the pneumatic insole project my team developed during the
Berkeley M.E.T. Innovation Academy.

We were thinking about diabetic neuropathy. A person can lose the pain signal that would
normally warn them to stop, adjust a shoe, or inspect a forming wound. Our concept was a
closed loop: detect a plantar-pressure hotspot, adjust a pneumatic bladder to offload
that region, and measure again to confirm that pressure actually dropped.

I liked the ambition of the project. I learned more from the parts that resisted us.

Professor Dorian Liepmann pushed us to prove one working bladder before attempting an
entire shoe. Professor Grace O’Connell warned that adding sensors and mechanisms inside
an already crowded shoe could create more pressure. Professor Robert Full pointed us
toward serious pressure-measurement systems and researchers closer to the problem.
Yifan You helped us see the pneumatic questions hiding behind the sketch: displacement,
required air pressure, supply, portability, durability, and control.

The experience changed how I understood personalization. The hardest part was never
drawing separate zones under a foot. The hard part was knowing where the zones should
go, deciding how they should respond, and proving that the intervention improved the
pressure distribution rather than relocating the problem.

After Berkeley, one question stayed with me: could the personalization process begin
with equipment people already carry?

Visole keeps the closed-loop discipline I learned from GlycoStep—measure, change, and
verify—while exploring a different mechanical path. Phone video supplies the movement
evidence. Inverse kinematics and pressure estimation translate motion into a loading
hypothesis. A variable-density printed lattice turns that hypothesis into a passive
mechanical design that can be tested, calibrated, and revised.

The Uncomfortable Gap Between Seeing and Feeling

A camera sees light. An insole responds to force.

Between those two facts is the entire project.

Modern vision models can reconstruct geometry from ordinary images. Markerless motion
systems can estimate how joints move from phone videos. Research models can infer foot
pressure or ground-reaction forces from pose and motion. Additive manufacturing can vary
the stiffness of a printed lattice across a surface.

It is tempting to compress all of that into one beautiful sentence:

Record a person walking, predict the pressure, and print the perfect insole.

That sentence is exciting. It is also scientifically irresponsible.

Every arrow hides an error. A camera cannot directly observe force under the foot.
Reconstruction may have the wrong scale. A keypoint detector may use the wrong joint
order. A pressure model may have been trained on people or movements unlike the intended
user. A clean-looking pressure map may still be registered to the wrong location. A
lattice designed to be soft may print too stiff, bottom out, or simply move the hotspot
next door.

Visole is worth doing because I am not hiding those arrows.

What Visole Actually Is

Visole is a low-cost phone-vision-to-manufacturing pipeline for mechanically
personalized 3D-printed insoles.

The research question is simple to say and difficult to answer:

Can a low-cost vision-to-manufacturing pipeline reliably convert human movement into
a mechanically personalized 3D-printed insole, and where does error in that pipeline
limit its performance?

The pipeline has two eyes.

The first eye looks at geometry. I plan to capture still images of a rigid, textured
foam impression of the plantar surface. A static impression matters: a walking foot is
deforming, partially occluded, and almost designed to embarrass a 3D reconstruction
model. The foam exposes the plantar geometry and holds it still. A known-size fiducial
provides metric scale.

The second eye looks at movement. Phone video becomes a time series of body
keypoints. Those keypoints can feed an established pressure-estimation method rather
than forcing me to invent an entire biomechanics model from zero.

The two branches meet during registration. Template pressure must be transferred onto
the subject’s reconstructed plantar surface. Then pressure is simplified into a small
number of defensible zones, converted into target mechanical responses, and mapped to
3D-printable lattice parameters. The part is printed, compressed, measured, revised,
and finally compared against appropriate controls.

The architecture is easier to understand as two separate sensing branches. Static
images recover plantar geometry; walking video estimates loading. They meet only when
template pressure is registered onto the subject’s reconstructed foot.

The Visole pipeline: separate static geometry and walking-video branches join at pressure registration, then continue through lattice design, printing, calibration, and physical validation.
The proposed Visole pipeline. Named artifacts cross each interface, diamonds mark verification gates, and dashed arrows return measured errors to the design stage. CP1 runs in parallel and becomes the fallback if CP0 blocks human pressure testing. Open the figure for the full-size version.

The final validation arrow is the reason this is a science fair project instead of a
product mockup. The distinction matters: verification asks whether each stage met its
technical specification; validation asks whether the completed insole produced the
intended measured pressure benefit.

A Dry Run Before I Build It

Before building more hardware, I sent one imaginary foot through the entire system.
The imaginary print finished. The imaginary data did not.

That rehearsal matters because each stage can produce something attractive enough to
fool the next one.

  1. Geometry capture: I photograph a textured foam impression with a scale marker.
    The branch must return plantar_surface.stl in millimeters—not merely a convincing
    point cloud. I repeat the scan, compare heel width, arch length, and landmark
    positions, and reject it if scale or missing plantar regions drift beyond the gate.
  2. Movement capture: a fixed phone records several clean gait cycles. The output is
    an ordered, normalized keypoint time series with confidence values. A left/right
    swap, hidden ankle, cropped foot, variable frame rate, or detector joint-order
    mismatch can remain visually plausible while corrupting every later stage.
  3. Pressure estimation: the reproduced FPP-Net baseline receives exactly the
    keypoint representation it expects. Its output is a normalized 192-value template,
    so I must not describe it as measured force or invent more spatial detail than it
    contains. Out-of-distribution gait is a reason to widen uncertainty, not smooth the
    map until it looks believable.
  4. Registration: pressure on the template is mapped onto the reconstructed plantar
    surface. This is the moment the result becomes subject-specific—and therefore the
    easiest place to manufacture fake personalization. Landmark error, orientation,
    topology, and left/right identity need numerical checks before the map can pass.
  5. Mechanical design: I aggregate the registered field into only 6–10 zones and
    request target force-displacement behavior. The design must cap stiffness gradients
    and flag bottom-out or load-transfer risk. A softer hotspot is not automatically a
    safer hotspot.
  6. Manufacture and calibration: the script generates a slicable part without
    hand-editing the pressure assignment. Coupons printed with the same TPU, orientation,
    slicer, and settings establish the real inverse relation from desired response to
    lattice geometry. The CAD value does not pass until compression data agrees.
  7. Physical validation: after approval for human-participant work, the same protocol
    compares the uniform, rule-based, personalized, uncertainty-aware, and calibrated
    designs. The target-region peak must fall without an unacceptable neighboring peak,
    and repeated trials must be larger than measurement noise.

That rehearsal changes the build order. The compression branch starts immediately;
geometry and pressure develop independently against dummy file contracts; registration
waits until both branches pass alone. A beautiful insole at the end cannot rescue an
unverified file at the beginning.

Failure Budget by Branch

Branch Most dangerous silent failure Gate before continuing
Static geometry Correct shape at the wrong scale repeated landmark and dimension error in mm
Video to keypoints wrong joint order, normalization, or left/right identity schema test plus visual overlay on held-out frames
Keypoints to pressure confident prediction outside the training domain reproduce the published baseline; report uncertainty and domain limits
Registration smooth map attached to the wrong anatomy landmark/surface error and a deliberate left/right failure test
Pressure to lattice false precision or a sharp stiffness boundary 6–10-zone limit, gradient cap, and bottom-out simulation/check
Slice and print nominal lattice erased by process variation same-process coupon curves, repeats, and durability drift
Pressure validation sensor drift or load moved next door calibration, repeated gait cycles, controls, and adjacent-zone penalty

Three gates can stop the full project entirely: no human-participant approval, no
dependable reference-pressure instrument, or no reproduced pressure baseline. The first
two send me to the bench-only lattice-calibration fallback. The third keeps the pressure
branch labeled exploratory. A model does not become reliable because I need its output.

The Research I Am Standing On

My contribution begins at the connections between established components: the adapter
contracts, calibration loop, physical validation, and end-to-end error budget. Inventing
every model would be bloat wearing a lab coat.

VGGT: Geometry from Images

VGGT predicts camera parameters, depth, point maps, and 3D point tracks from one or more
images. It makes a phone-based geometry branch plausible, but it does not make the
result automatically metric, plantar-specific, or accurate enough for manufacturing.
Those are my problems to test.

VGGT, presented by its researchers.

OpenCap: A Proof That Biomechanics Can Travel

OpenCap is important to me for a broader reason. It demonstrates that sophisticated
human-movement analysis does not have to remain trapped inside a conventional motion
capture laboratory. Smartphone video can become useful kinematics and kinetics when the
capture protocol, calibration, models, and validation are treated seriously.

OpenCap is not Visole, and it does not directly solve subject-specific plantar-pressure
design. It proves that decentralization is not a fantasy. It also shows how much careful
engineering is required before the word “accessible” deserves to be used.

OpenCap shows the capture protocol, calibration, and modeling required to turn smartphone videos into biomechanical estimates; it is evidence for the movement branch, not a substitute for plantar-pressure validation.

The Closest Product-Shaped Warning

Variasole is a useful comparison because it already combines 3D foot scanning,
measured pressure, algorithmic CAD, TPU, and additive manufacturing. It prevents me
from claiming novelty for “scan a foot and print a pressure-informed insole.” Visole’s
different question is whether low-cost vision-estimated loading can survive the
additional uncertainty, registration, and calibration chain well enough to change a
measured physical endpoint.

Variasole demonstrates the neighboring design space: scanned geometry, directly measured plantar pressure, automated design, and a printed TPU insole. For Visole, it is prior art and a benchmark—not evidence that phone video can replace the pressure measurement used for final validation.

From Pixels to Joint Angles: Inverse Kinematics

A skeleton dancing over a video looks persuasive. It is not yet biomechanics.

The pose detector has only given me dots in an image. Inverse kinematics works backward
from those dots and asks which joint angles would make a body model line up with them.
In mathematical shorthand, it searches for the joint coordinates q that make the
weighted fitting error as small as possible:

q* = argmin(q) Σᵢ wᵢ ‖xᵢ(observed) − xᵢ(model, q)‖²

The equation is compact. The assumptions are not. Segment lengths, joint constraints,
camera calibration, keypoint identity, and confidence weights all shape the answer. A
single phone also makes depth and out-of-plane motion difficult to recover. The solver
can minimize the wrong problem beautifully.

So I need to preserve confidence values and test the keypoint-to-model adapter. A neat
skeleton overlay is a debugging view, not a result.

Loading interactive graph…
A deliberately simplified 2D sagittal demo. The cyan points are noisy observations; the model preserves rigid segment lengths, joint limits, and non-penetrating ground contact while reducing weighted marker error. Toe confidence is lower, so its residual contributes less. This explains the adapter—it is not a pressure prediction or a validation result.
Stanford's Biomechanics of Movement course shows how marker positions, reference frames, and a body model become joint angles. My markers come from phone video, but the bookkeeping problem is the same.
The next Stanford lecture crosses from motion into inverse dynamics and joint moments. That border matters: knowing how someone moved is not the same as knowing what forces produced the movement.

From Motion to Pressure and Ground-Reaction Force

Geometry tells me where the surface is. Kinematics tells me how the body moves. Neither
one directly tells me how force is distributed under the foot.

That distinction cannot be treated as a footnote.

Ground-reaction force describes the force exchanged between the body and the ground.
Plantar pressure describes how part of that interaction is distributed across the sole.
They are related, but they are not interchangeable. A model that estimates a total
vertical force curve has not automatically recovered a spatial pressure map. A model
that predicts pressure on a template foot has not automatically personalized it to a
new subject.

A bathroom scale can tell me the total load. It cannot tell me whether most of that load
is concentrated under one metatarsal head.

The familiar equation p̄ = F/A gives average pressure. Under a moving foot, pressure
is a field p(x, y, t) that changes across both space and time. Add the whole field and
I recover vertical load: Fz(t) = ∫∫A p(x, y, t) dA. Take its first moment and I get the
center of pressure. But neither number preserves every local peak.

Two steps can therefore produce similar force curves while loading the foot very
differently. Visole needs spatial pressure validation, not just a force curve or a
heatmap polished until it looks scientific.

Stanford's Biomechanics of Movement course explains the gait cycle and the ground-reaction forces behind the pressure patterns Visole tries to estimate.
This biomedical-engineering workshop follows plantar pressure from sensors through dynamic trials and interpretation. It shows what the colorful maps actually measure and what they can hide.

MMVP and its FPP-Net component are useful because they connect sequential 2D pose to a
compact foot-pressure representation. They are also a warning. The output is a
low-dimensional normalized template representation—not a magical, subject-specific
pressure image. Visole must respect the information content of that prediction instead
of manufacturing dozens of false-precision zones.

The official MMVP research video shows synchronized motion and plantar-pressure capture, plus the vision-pressure models built from the dataset.

Why Lower Frequency Still Matters

There are two kinds of frequency in this project.

The first is the frequency of centralized assessment. If useful capture can happen with
a phone, fewer sessions need to begin inside a specialized laboratory. That reduces
cost and travel while making longitudinal measurements more practical.

The second is computational frequency. More frames are not automatically more truth.
Near-duplicate frames increase memory and compute, while motion blur and occlusion can
add confident garbage. I want to test whether deliberate frame selection can reduce the
capture and reconstruction burden without destroying the landmarks and geometry that
matter downstream.

Frequency reduction is therefore not “do less science.” It is a test of how little data
the pipeline needs before reliability collapses. A decentralized system that requires a
top GPU, hundreds of perfect frames, and an expert cleanup artist is only a centralized
system wearing a phone case.

The Experiment, Not the Advertisement

I will not judge Visole by whether the final insole looks futuristic.

The project needs controls:

  1. A flat or uniform-stiffness baseline.
  2. A simple rule-based design.
  3. A design driven by vision-estimated pressure.
  4. A robust design that accounts for uncertainty.
  5. A calibrated revision informed by measured residuals.

The headline endpoint is physical: does the personalized design reduce pressure at the
target region relative to a fair baseline, and does it avoid creating a new adjacent
hotspot?

Before that final test, I need to know whether the lattice behaves as designed. TPU is
not an equation. Print orientation, wall count, temperature, speed, material lot, and
slicer behavior can all change effective stiffness. I will print lattice coupons,
compress them, build force-displacement curves, repeat the trials, and create an inverse
map from desired stiffness to printable geometry.

This branch starts first because it does not need the vision models to be finished. It
also survives if the ambitious pipeline fails.

Where nTop Could Accelerate the Work

The first CAD version should remain deliberately simple and reproducible: a small set
of zones, a measured lattice lookup table, and a scriptable path from
plantar_surface.stl plus lattice_map.csv to a printable part. That baseline keeps
Visole independent of any one commercial tool.

An educational nTop license could become the acceleration track after that baseline
works. Its implicit modeling and field-driven lattice tools are unusually well matched
to the problem: a registered pressure field can vary lattice thickness, density, or
cell size over a curved insole without manually constructing thousands of cells. The
workflow can also be packaged into reusable blocks, making controlled design variants
faster to generate and easier to compare.

That would save CAD time, but it would not become the project’s novelty. The evidence
still has to come from my coupon database, print calibration, control designs, and
measured pressure results. The useful experiment is whether a smoothly graded nTop
design performs meaningfully better than the simpler 6–10-zone baseline—not whether it
looks more sophisticated on screen.

nTop's official workflow shows pressure data driving lattice density or thickness. The impressive part is how quickly the geometry changes. The dangerous part is the quiet assumption that the incoming pressure field is already scaled and registered correctly. Visole has to own that adapter.
A second nTop workflow turns pressure-informed fields into cushioning geometry. I want the reusable field-to-geometry machinery. I still need coupon curves and in-shoe measurements before I trust the result under a foot.

What I Can Solve

I can make every translation explicit: input shape, units, coordinate frame, ordered
transformation, output contract, failure mode, and unit test.

I can measure reconstruction repeatability and scale error. I can verify keypoint order
and normalization. I can quantify registration error instead of treating alignment as a
cosmetic step. I can reduce a noisy pressure estimate into a small number of honest
zones. I can test printed lattices rather than trusting CAD. I can compare controls and
record where error accumulates.

Most importantly, I can allow the experiment to tell me that a stage is not good enough.

What I Cannot Honestly Solve

I cannot turn a phone camera into a direct force sensor.

I cannot promise clinical-grade pressure prediction from a limited public dataset. I
cannot claim that a model trained on one population generalizes to every age, gait, or
condition. I cannot prove prevention, treatment, or diagnosis through a science fair
prototype. I cannot remove the need for professional judgment. Human testing also
requires approval before the experiment begins; enthusiasm is not an ethics exemption.

If I cannot secure a dependable reference-pressure instrument, I cannot honestly claim
measured plantar-pressure improvement. In that case, the project falls back to a still
useful and complete question:

target mechanical response -> lattice selection -> print -> compression test -> calibrated redesign

That fallback can study repeatability, anisotropy, durability, model residuals, and
closed-loop correction. It cannot pretend to be proof of pressure relief.

In-shoe pressure sensing illustrates what the final gate must measure dynamically. Visole needs this class of reference instrument—or a validated equivalent—to compare designs, quantify adjacent load transfer, and close the loop.

Why This Project Is Worth Doing

Visole sits in an uncomfortable place between computer vision, biomechanics, mechanical
design, and manufacturing. That discomfort is its value.

Many projects prove that one model can predict one output on one dataset. Many products
show that a customized object can be printed. The harder question is what happens when
the outputs must survive contact with the next stage—and eventually with the ground.

The project earns its place by making failure measurable.

If the geometry is inaccurate, I want to know how much. If pressure estimation fails
outside its training domain, I want to expose it. If registration creates fake
personalization, I want a metric that catches it. If the printer erases the intended
stiffness difference, I want the compression curves to say so. If the insole moves force
instead of reducing it, I want the neighboring-zone measurement on the graph.

Visole should leave me with two concrete results: a tested insole and an honest map of
where accessible vision and manufacturing stop being reliable. Together, they answer
the question driving the project: how far can accessible vision and manufacturing go
before accumulated error becomes more powerful than personalization?

That question belongs at a science fair. A careful answer could remain useful long after
the judging ends.

Selected Research Trail

I am keeping the visible bibliography short on purpose. These are the sources most
directly connected to the current pipeline; each link opens a public paper or official
project page rather than a copy hosted on this blog.