This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass.

What I Built

A photograph captures a flower in a second. Drawing it asks you to spend longer looking.

I built SketchWild, an outdoor sketching companion for beginners, nature journalers, and anyone who wants a small reason to step outside.

Choose an outdoor mission, draw on paper, then upload a photograph of your subject alongside your sketch. Gemma 3, running locally through Ollama, compares the pictures and offers one detail to observe again.

The goal is to return your attention to the real subject. SketchWild doesn’t generate a replacement drawing or grade your talent.

Choose → draw outside → compare → look again → reflect.

The app supports leaves, flowers, trees, bark, rocks, and outdoor scenes. It includes:

  • Outdoor missions: Six exercises exploring shape, overlap, texture, light, negative space, and depth.
  • Flexible sessions: Place and time filters, with printable instructions to take outside.
  • Photo comparison: Subject-and-sketch uploads with previews and rotation.
  • Second looks: Reflections, optional follow-up drawings, and revisits to earlier subjects.
  • Personal journal: Browser-local storage with ZIP export.
  • Field Passport: Stamps for self-reported outdoor participation.

A nearby plant, a rock beside a path, or a view from a park bench is enough. You need curiosity, paper, and a pencil.

Demo

Watch the narrated walkthrough on YouTube

Explore the public preview

The walkthrough demonstrates live local Gemma feedback and the complete sketching flow.

The Render preview supports missions, uploads, reflections, and journaling. Live inference is disabled in the public preview, with visible instructions for running SketchWild locally.

The recording uses generated sample pictures to demonstrate the comparison workflow. The processing wait is shortened in the edit; it is not an outdoor participant trial.

Code

GitHub repository and setup instructions

Application code is MIT licensed. Model weights and dependencies retain their own terms.

How I Built It

The interface uses React, TypeScript, and Vite. An Express backend prepares the images and calls Gemma 3 4B through Ollama.

The prompt explicitly distinguishes the subject photograph from the paper drawing. It asks for visible evidence from both pictures and one respectful invitation to look again. Unclear inputs can produce a retake request or an uncertain response.

The backend validates the response structure and category. Failed requests show an error rather than silently substituting example feedback.

CPU inference was a practical challenge: one recorded flower-and-sketch comparison took approximately 146 seconds on my laptop. I added elapsed-time feedback, cancellation, draft persistence, and an option to save without inference.

Journal entries use IndexedDB, keeping pictures and notes in the current browser. ZIP export provides a way to back them up.

The project passes 17 automated tests, TypeScript checking, and the production build. These checks verify application behavior, not model accuracy.

A GitHub Copilot review identified confusing preview wording and missing accessible dialog title associations. I checked both findings and corrected them.

ElevenLabs generated the walkthrough narration.

Why Does Open Innovation Matter?

Local inference gives SketchWild control over where pictures are processed. With the default configuration, Gemma runs on the computer hosting the local app, without sending those pictures to a cloud model service.

After the initial downloads, local comparisons need no cloud inference connection or model API key. There is no per-request cloud inference fee, although the laptop supplies the processing resources.

Open weights also let me experiment: change the coaching prompt, adjust image preparation, or swap compatible vision models.

The tradeoffs matter. CPU feedback can be slow, and models can misinterpret drawings. My next priorities are evaluation with real subject photographs and paper sketches across all six categories, followed by an outdoor user trial.

The observation-first approach was informed by Bio Sketchbook and John Muir Laws’ nature journaling practices. SketchWild’s implementation, interface, and exercise prompts are original.

Prize Categories

  • Best Use of Gemma: Local subject-and-sketch coaching using Gemma 3 4B through Ollama.
  • Best Use of Render: Hosting the public frontend and backend preview.
  • Best Use of ElevenLabs: Generating narration for the project walkthrough.
  • Best Use of GitHub Copilot: Reviewing preview behavior and accessibility, with two findings checked and corrected.