I worked on Fitback as part of a SUTD capstone team. The product question was familiar: an online shopper can read a size chart and still be unsure which size will feel right. Our project connected two user photos, retailer-specific sizing information, and fit preference to a recommendation in a Shopify shopping flow. Each input introduces a different kind of uncertainty.

A body estimate does not tell you everything about a garment, and a retailer’s label does not tell you how someone wants it to fit. Tight, standard, and loose are meaningful differences in the decision. That makes the recommendation a chain of small translations: help someone capture usable photos, interpret the body information, read the relevant chart, and account for the requested fit.

Make the camera input usable

The public Detect-T repository preserves a pose-guidance and capture proof of concept from this work. It uses browser-based pose feedback and a front/side state machine to guide the capture sequence. This is a useful piece to examine because an image pipeline begins with what the camera can actually see. Feedback during capture gives a person a chance to correct the input before the later stages depend on it.

There was also a concrete compatibility problem. MoveNet and the older Teachable Machine pose-classification tooling expected different TensorFlow.js environments. The prototype isolates the older stack in a Web Worker, with messages crossing the boundary to the main capture flow. That lets the two model environments coexist without making the page-level runtime carry incompatible versions together.

  • The camera flow owns the visible guidance and capture state.
  • The worker owns the older model environment and returns its results through messages.
  • The broader sizing flow combines photo-derived information with the retailer chart and fit preference.

I keep those scopes distinct when describing the project. Detect-T shows a specific engineering solution; it is not a public implementation of the entire sizing product. The worker boundary also illustrates a practical design point: sometimes a cleaner interaction depends on separating awkward internals. A shopper should be able to follow a capture sequence without needing to understand why two model runtimes are involved.

The recognition belongs to the team’s project. The public technical story I can show here is narrower and concrete: pose feedback, capture state, and an isolated model runtime, placed within a sizing workflow that also needs garment information and human preference. That is enough to explain why getting a recommendation right involves more than selecting a model.

Follow the trail