Inspiration
A nominally correct CAD dimension can still produce a frustrating physical fit. Generic clearance rules skip a useful question: what does this machine and material actually do, and how much variation did I observe? FitWitness carries those measurement bounds into the next test print.
What it does
FitWitness is a native macOS workbench for repeated caliper measurements. It derives a measured bias envelope, includes caliper and insert uncertainty, and checks the resulting total clearance against a chosen band. It suggests a CAD width only when the entire entered envelope can fit. When variation is too wide, it explicitly refuses to suggest an impossible width.
In the authored example, a 10.30 mm CAD slot produces a calculated clearance range of 0.05–0.19 mm. Changing the slot to 10.43 mm moves that range to 0.18–0.32 mm, inside the chosen 0.15–0.35 mm band.
A generated seven-slot STL coupon, dimensioned SVG reference, fit report and editable JSON session turn the calculation into the next physical experiment. Named calibration profiles stay locally on the Mac. One profile, all fit calculations and all exports are free; the Material Library unlock enables multiple saved profiles.
How I built it
SwiftUI and AppKit provide the native workbench. Pure Swift interval arithmetic drives the fit model. Polygon triangulation and extrusion generate the calibration comb; its preview uses the same outline. RevenueCat's Swift SDK 5.88.0 handles offerings, purchases, customer information and the material_library entitlement.
Codex and GPT-6 Astra assisted research, implementation and review. The runtime calculations are deterministic and inspectable in the public MIT-licensed source.
What was verified
Eleven portable Swift checks cover fit arithmetic, impossible variation, invalid inputs, JSON reload, slot dimensions, edge manifoldness and signed volume. Native session persistence, profile limits and actual STL/report/session exports were also checked.
The configured judge preview was extracted from its archive and launched without an environment key. It loaded the bundled public RevenueCat Test Store configuration and the US$4.99 non-consumable product. Cancellation and simulated failure kept the library locked. A successful test purchase activated material_library, allowed a second profile to be saved, and survived an entitlement reload. An independent RevenueCat dashboard readback matched the exact transaction and active entitlement.
This is a sandbox transaction with no real charge or revenue. Test Store entitlement reload is not Apple Store restoration. The version 0.2.1 judge preview is public with its Test Store configuration and launch instructions included. Five packaging regression checks cover stale-file exclusion and preservation of previous artifacts when a build fails. The public 69-second motion demo shows the native app and the verified Test Store purchase flow. Natural narration was generated with HeyGen's Starfish speech API using the public Adam Stone voice; English captions and AI disclosure are included.
Challenges and lessons
The useful answer is sometimes that no single width can meet the requested bounds. Keeping that refusal visible was as important as the successful correction. Stable profile identities prevent an edited or renamed profile from overwriting another calibration. The separate Test Store preview preserves the original app's local data while making the purchase demonstration reproducible.
Boundaries and next steps
The sample measurements are authored examples. The model assumes locally constant bias for nearby sizes under the same process settings; the observed envelope is not a statistical confidence interval or a guarantee about future prints. Physical printing, caliper acquisition, printer-specific generalization and production billing remain unverified.
Next, I will print and measure controlled coupons to test that assumption across nearby widths and improve calibrated profile comparisons.
This project targets the student Next Gen Award using public licensed source and an actual native Mac demo. The downloadable development build is ad-hoc signed, not notarized or an App Store release.
Built With
- appkit
- macos
- revenuecat
- swift
- swiftui
Log in or sign up for Devpost to join the conversation.