GEORGE FORSE
Back to Portfolio
Check My Banana Icon
Websites

Check My Banana

Nuxt Tailwind WebAssembly Python

A banana ripeness checker running entirely in-browser.

Website built with Nuxt, Tailwind and WebAssembly. Machine learning model trained locally with hundreds of pictures of bananas (and for that matter, what I like to call "not-bananas"), Python and FastAI, exported as an ONNX model.

Double entendre aside, I developed CheckMyBanana because I'm colourblind, and I find it difficult to tell the difference between ripe and unripe bananas. Rather than rely on anyone else to tell me if a banana is ripe before I eat it, I decided to declare victory on colourblindness and build a tool to do it myself.

The tool uses WebAssembly to import the ONNX model and run it in-browser. This means that the tool is entirely client-side, and never sends any data to a server or any third party. To optimise the loading of the ONNX model, I created a script that splits the model into chunks and loads them in parallel (or as I call them, banana splits).

The most fun part of the project was finding various different pictures of household objects to use as "not-bananas" for the training data. I found that the most difficult objects to train the model to stop confusing with bananas were fingers, hair clips, Shrek, dogs, and kiwis.

Check My Banana Preview
Available on:
Visit Website