Visole: A Smartphone-Based Optical Plantar-Pressure and Personalized Lattice Insole System
Visole: A Smartphone-Based Optical Plantar-Pressure and Personalized Lattice Insole System
Thomas Li — ISEF Project Proposal (School Review Round)
Engineering goal: Build a reproducible pipeline that measures foot shape and
static plantar pressure with less than $400 in project hardware and consumables, then uses those
measurements to design a 3D-printed lattice insole that reduces a measured pressure
hotspot relative to a fair uniform-lattice control.
Why this problem matters
Pain normally tells a person to shift position, change shoes, or inspect an injury.
Diabetic peripheral neuropathy can weaken that warning system. A concentrated load may
continue damaging tissue even when the person does not feel it, and elevated plantar
pressure is an established risk factor for diabetic foot ulceration [1]. Clinical
guidelines therefore treat pressure relief, or offloading, as an important part of
foot-ulcer care [2].
The measurement and manufacturing steps are usually separated. A clinic may use a
specialized pressure mat or an instrumented insole to find high-load regions, while a
different workflow scans the foot and designs the orthotic. Commercial systems offer
capabilities that this project will not reproduce, including validated sensor arrays,
high sampling rates, and clinical software. They also illustrate the access gap: one
currently listed baropodometric platform costs €8,500, while other professional systems
are sold by quotation.
Visole asks a smaller and testable question. It does not try to diagnose neuropathy,
predict ulcers, or replace a clinician. It asks whether inexpensive optics, computer
vision, and desktop 3D printing can form a closed engineering loop:
scan -> measure -> align -> design -> print -> test
Research question and hypothesis
Research question
Can foot scanning, pressure measurement, and lattice-insole design be combined into one
automated pipeline built from hardware costing under $400? More specifically, can the
pipeline reproducibly create a personalized insole that lowers peak static interface
pressure compared with a mass- and thickness-matched uniform-lattice insole?
Working hypothesis
If the measured pressure field is registered to the reconstructed foot and used to vary
the printed lattice within safe, calibrated bounds, then a pressure-driven insole will
reduce the target-region peak pressure by at least 15% relative to the uniform
lattice in at least four of five paired bench trials, without increasing the largest
adjacent-region peak by more than 10%.
The first design hypothesis is that high-pressure regions should receive a more
compliant lattice so that they deflect farther and share load with surrounding regions.
That direction is not assumed to be automatically correct. Coupon tests and the final
pressure measurements will determine whether it works or merely moves the hotspot.
How the system will work
1. Reconstruct foot geometry from phone photographs
Before collecting any human data, I will validate this branch on a nonliving foot
surrogate whose source CAD dimensions are already known. For an approved capture, I
will photograph the foot from overlapping angles in diffuse, controlled lighting. A
known-size marker beside it will provide metric scale. The images will be processed
with FOCUS, a University of Cambridge method for
few-view 3D foot reconstruction [3]. The authors report results from as few as three
views and support uncalibrated image sets, but I will capture more overlapping views and
test the result rather than assume that the minimum is sufficient.
The output must be a watertight or repairable mesh in millimeters, not just a convincing
rendering. I will repeat the entire capture three times and compare foot length, heel
width, forefoot width, and corresponding surface points. The surrogate reconstruction
will also be compared directly with its source CAD model. The scan passes this stage
only if reference-dimension error is below 3% and median repeated surface or landmark
disagreement is below 5 mm.
Useful starting points: the FOCUS paper, the
official project page, and the
FOCUS source code on GitHub.
2. Turn light into a pressure map
I will build an optical pressure platform based on frustrated total internal
reflection (FTIR). LEDs inject light through the edges of a clear cast-acrylic plate.
Most of the light remains trapped inside. A thin compliant silicone layer couples the
load to the surface; where the layer is compressed into optical contact, some trapped
light scatters toward a camera below the plate. The contact region appears as a bright
footprint.
The idea is not new, which is scientifically useful. Betts and colleagues described an
optical pedobarograph based on this principle in 1980 and showed that calibrated static
and dynamic pressure distributions could be obtained [4]. Visole rebuilds the sensing
principle with commodity parts, a locked-exposure camera, and modern image processing.
Brightness is not pressure until it has been calibrated. LED falloff, camera
vignetting, silicone thickness, ambient light, temperature, and loading history can all
change the image. I will therefore:
- Enclose the platform to block room light and lock exposure, gain, focus, and white
balance. - Record a dark frame and an unloaded reference frame for every session.
- Apply known masses through three flat-ended indenters of measured area, using
pressure = force / areaandforce = mass × gravitational acceleration. - Test at least six load levels, five plate locations, and three repeats per condition.
- Correct background and spatial illumination before fitting the simplest adequate
monotonic intensity-to-pressure curve. - Reserve 20% of the trials as a held-out test set and report mean absolute error,
root-mean-square error, saturation range, repeatability, hysteresis, and drift. - Check physical consistency by comparing the applied load with the pressure map’s
integrated force,sum(pressure x pixel area).
The goal is a pressure map in kilopascals with a known error range—not simply a colorful
image.
3. Put the scan and pressure map in the same coordinate system
Printed AprilTags around the sensing area will define stable reference points [5]. The
camera will first receive a one-time lens-distortion calibration. Then, in each session,
the detected tag corners will let OpenCV estimate a planar homography, correct the
camera’s perspective, and convert pixels into millimeters [6].
This distinction matters: AprilTags locate the plate, but they do not by themselves
remove lens distortion.
The corrected contact outline will be aligned with the downward projection of the 3D
plantar mesh. The registration algorithm will optimize the outline overlap while
preserving metric scale, and anatomical checkpoints at the heel and forefoot will be
used as verification points. I will report contour overlap and landmark error. A scan
is taken without load while the pressure outline is recorded under load, so any shape
change between those states will be measured and listed as registration uncertainty.
Useful implementation links: OpenCV’s homography tutorial,
the official OpenCV GitHub repository, the
official AprilTag detector, and
printable tag images.
4. Convert the pressure field into a printable lattice
The registered pressure map will be exported as a scalar point map and brought into
nTop. A bounded mapping will vary cell size and strut thickness
across the insole. Transitions will be smoothed so that one stiff region does not end
abruptly beside a soft region, and minimum printable strut thickness will be fixed before
the final designs are generated.
Before printing a full insole, I will print a coupon matrix covering at least four
lattice settings. Each setting will have five identical specimens. Coupons will be
compressed through repeated load-unload cycles using known weights or a school testing
machine, and their force-displacement curves, energy loss, and permanent set will be
recorded. Those measurements—not the nominal CAD values—will define the relationship
between lattice geometry and effective stiffness.
I will then make three insoles from the same outer geometry:
- Solid control: a non-lattice reference.
- Uniform-lattice control: one lattice setting everywhere.
- Pressure-driven lattice: spatially varied using the registered pressure field.
The uniform and pressure-driven designs will use the same TPU, overall thickness, print
orientation, slicer settings, and approximately the same material volume. Matching the
controls this way prevents a lighter or thicker insole from winning for the wrong
reason.
nTop’s pressure-map shoe-sole guide
shows the field-to-lattice workflow. Visole’s original contribution is not the existence
of that CAD tool; it is the calibrated low-cost measurement, registration, controlled
mapping, and physical validation that surround it.
5. Test the result without putting an experimental insole into clinical use
A rigid 3D-printed foot surrogate derived from the same geometry will apply a repeatable
load to each insole. The surrogate will be mounted in a guide so that load magnitude,
position, angle, and dwell time remain constant. Test order will be randomized.
Pressure-indicating film of the appropriate range will be placed at the
surrogate-insole interface. Film will be scanned with the same device and settings and
analyzed at the same post-exposure time, following the manufacturer’s handling guidance.
I will run five paired trials per design. If full-foot film is too costly for every
repeat, the first trial will map the complete interface and later trials will use
predefined patches over the target and neighboring regions.
The primary outcome is the highest pressure inside the preregistered target region.
Secondary outcomes are mean target pressure, contact area, and the highest adjacent-zone
pressure. I will report every trial, paired percentage differences, uncertainty, and a
confidence interval rather than selecting only the best print.
Variables and controls
| Type | Variable |
|---|---|
| Independent variable | insole design: solid, uniform lattice, or pressure-driven lattice |
| Primary dependent variable | peak pressure in the predefined target region |
| Secondary dependent variables | mean target pressure, contact area, adjacent-zone peak, and insole deflection |
| Controlled variables | surrogate, total load, load position and angle, dwell time, insole outline and thickness, TPU lot, printer, orientation, slicer settings, film grade, scanner, and analysis timing |
| Calibration controls | dark image, unloaded image, known masses, known indenter areas, repeated plate locations, and held-out trials |
Pass/fail criteria
| Stage | Criterion before continuing |
|---|---|
| 3D reconstruction | less than 3% error against reference dimensions and less than 5 mm median repeat disagreement |
| Optical calibration | held-out mean absolute percentage error at or below 15%, repeatability CV at or below 10%, and no saturation in the test range |
| Registration | median landmark error at or below 5 mm and contact-outline Dice overlap at or above 0.90 |
| Lattice coupons | stiffness changes monotonically with the selected lattice parameter and repeated coupons vary by no more than 10% |
| Final insole | at least 15% target-peak reduction versus uniform lattice in at least four of five paired trials, with no adjacent peak increase above 10% |
If a stage misses its criterion, its output will not quietly pass into the next stage. I
will revise that stage or narrow the claim. For example, if optical calibration is
repeatable but not accurate enough in kilopascals, the system may still compare relative
contact intensity under identical loads, but it will not be described as an absolute
pressure instrument.
Data analysis and reproducibility
The analysis script will retain raw images and generate each later artifact from saved
inputs. The project record will include:
- original phone photographs and camera settings;
- FOCUS meshes and scale measurements;
- dark, unloaded, calibration, and test images;
- AprilTag coordinates and camera-calibration files;
- calibration data, fitted model, held-out errors, and force-balance checks;
- registration transforms and error measurements;
- nTop input fields, lattice settings, STL files, and slicer profiles;
- coupon force-displacement data; and
- all insole test images and outcome tables.
For the final comparison, I will emphasize paired effect sizes and uncertainty. With a
small number of physical specimens, a large and repeatable engineering effect is more
informative than a p-value by itself. All exclusions—such as a visibly slipped load or
damaged film—will be defined before testing and documented.
Safety, ethics, and project limits
The primary validation is bench-only: known weights, printed coupons, and a rigid foot
surrogate. No person with diabetes, neuropathy, an ulcer, or another foot condition will
be recruited, and no prototype will be used for diagnosis or treatment.
Photographing a person’s foot or recording that person’s pressure is human-participant
data. Under the current ISEF human-participant rules,
any non-exempt human testing must receive IRB approval before recruitment or data
collection. The bench pipeline can be developed with a nonliving foot surrogate. Any
later human capture will begin only after the school IRB/SRC reviews the complete
procedure, consent and privacy plan, and required forms. No one will walk in an
experimental insole during this study.
The plate will be fully frame-supported and mechanically load-tested with a safety
factor before any approved static foot capture. Weights will be lowered with a guide,
not held over hands or feet. The optical system uses enclosed low-voltage LEDs. Safety
glasses, ventilation, gloves where required by the silicone safety data sheet, and
adult supervision will be used for cutting, casting, printing, and mechanical testing.
This prototype measures controlled static interface pressure. It will not establish
dynamic gait performance, long-term durability, comfort, ulcer prevention, or clinical
effectiveness. Those would require validated instruments, many participants, medical
oversight, and a different study.
Budget
These are planning ceilings; actual receipts will be recorded.
| Item | Planned maximum |
|---|---|
| 12 mm clear cast-acrylic plate | $65 |
| LED strip, power supply, wiring, and diffuser materials | $30 |
| Manual-control USB camera and rigid mount | $40 |
| Silicone contact layer and casting supplies | $45 |
| Frame, enclosure, fasteners, and non-slip feet | $45 |
| TPU filament | $55 |
| Calibration masses and indenter materials | $25 |
| Pressure-indicating film | $70 |
| Printed tags and miscellaneous supplies | $15 |
| Total project hardware and consumables | $390 |
A smartphone, computer, school 3D printer, basic scale/calipers, and school mechanical
testing equipment are treated as already available. nTop will require educational
access; if that access is unavailable, the same pressure-field and coupon data will be
used with an open, scriptable CAD fallback such as
CadQuery. Software cost is therefore not hidden
inside the hardware claim.
For context, this commercial platform example
is listed at €8,500. The comparison is about access, not equivalence: Visole must earn
every accuracy claim through calibration and cannot assume the performance of a
clinical system.
Proposed schedule
| Weeks | Work |
|---|---|
| 1–2 | school review, risk assessment, final test plan, and materials |
| 3–5 | FTIR platform construction, camera calibration, and optical calibration |
| 4–6 | phone-image capture, FOCUS reconstruction, and repeatability testing |
| 6–7 | pressure-to-mesh registration and error measurement |
| 7–9 | lattice coupon design, printing, compression, and stiffness mapping |
| 9–10 | three controlled insole designs and print-quality checks |
| 11–12 | randomized bench tests, analysis, uncertainty report, and revision |
Helpful demonstrations
These videos show the physical and CAD ideas behind the project. They are learning
resources, not evidence that Visole itself works.
Useful code and build resources
| Resource | Why it is useful |
|---|---|
| FOCUS on GitHub | official few-view foot-reconstruction code and pretrained-model setup |
| OpenCV on GitHub | camera calibration, image correction, segmentation, homography, and measurement |
| AprilTag on GitHub | official fiducial detector, pose tools, and OpenCV integration example |
| Printable AprilTags | source images for known-size plate markers |
| CadQuery on GitHub | open, scriptable fallback for reproducible CAD generation |
| nTop pressure-driven sole tutorial | official example for importing a scalar pressure map and driving lattice geometry |
| Fujifilm Prescale overview | selecting a film range and understanding the measurement medium |
| 2027 ISEF rules and forms | current approval, safety, documentation, and human-participant requirements |
References
- Veves A, Murray HJ, Young MJ, Boulton AJM. “The risk of foot ulceration in
diabetic patients with high foot pressure: a prospective study.” Diabetologia.
1992;35(7):660–663. PubMed and DOI. - Bus SA, Armstrong DG, Crews RT, et al. “Guidelines on offloading foot ulcers in
persons with diabetes (IWGDF 2023 update).” Diabetes/Metabolism Research and
Reviews. 2024;40(3):e3647. DOI and
official IWGDF guideline page. - Boyne O, Cipolla R. “FOCUS: Multi-View Foot Reconstruction from Synthetically
Trained Dense Correspondences.” International Conference on 3D Vision (3DV). 2025.
Paper,
project, and
code. - Betts RP, Duckworth T, Austin IG, Crocker SP, Moore S. “Critical light reflection at
a plastic/glass interface and its application to foot pressure measurements.”
Journal of Medical Engineering & Technology. 1980;4(3):136–142.
PubMed and DOI. - Olson E. “AprilTag: A robust and flexible visual fiducial system.” IEEE
International Conference on Robotics and Automation (ICRA). 2011.
Paper and official implementation. - Bradski G. “The OpenCV Library.” Dr. Dobb’s Journal of Software Tools. 2000.
Official OpenCV documentation and
source code. - nTop. “How to vary density to create a custom shoe sole.”
Official tutorial
and pressure-map midsole video. - Society for Science. International Rules for Pre-College Science Research,
2026–2027. Rules and forms.





