← Lab notebook

Making Animal Vision, a camera that sees like other animals

Mar – Sep 2026 · Animal Vision

When I later wrote the idea down for a rebuild, it read like this:

"I want to see how animals see the world. For example a fly, then I want to change that to a dog, etc. I want to use Google Cardboard as my VR tool, so the view needs to be in VR. It needs to be scientific data-based, not cartoonish."

The first version was made on March 27, 2026, in one Replit Agent session. The fly came first: the live camera passed through a shader that breaks the image into compound-eye facets, pushes the colour toward blue and green and removes red. About half an hour later the agent had added a mantis shrimp, a honeybee and a dog. Seventeen minutes after that, eight more animals from Wild Kratts. In New York time the fly was in at 10:03 in the morning and the app was published before 1 pm.

The phone camera through animal filters, split for each eye for Cardboard. From the project page.

"Not cartoonish" stayed the rule. Two of the agent's tasks that first day were only about scientific accuracy. One fixed the dog, where the agent had called the green-sensitive cones "red-sensitive". The other was a review of all 14 animals, which the agent reports as checked against published research.

Housefly view
Housefly: a compound-eye mosaic over the live camera, in Cardboard mode. From the project page.

Then the Wild Kratts idea grew into the app. As I wrote it, the user "can say "Creature Power" to activate camera scanning of creature disks (Wild Kratts term)." The agent connected Gemini 2.5 Flash to the camera, so you can hold up a disc or a picture and the app switches to that animal. If Gemini names an animal the app doesn't have, it researches that animal's eyes, picks the closest shader, and saves the new profile. Because the phone sits inside the headset, voice became the controls: "Creature Power!" scans, and "What If" records 30 seconds of the plain camera and the animal view side by side.

That evening I added animal hearing filters. The microphone runs through a filter chain built from each animal's audiogram, the curve of what it can hear. The agent added a warning to wear headphones, because the speaker feeds back into the microphone.

Pit viper view
Pit viper: a warm, washed-out view that hints at heat. A phone camera can't see infrared, so it is an interpretation.

I also tried other versions in Replit: two fly-only Cardboard pieces that put you in a 3D garden at fly height instead of using the camera, and a start on a native phone app with Expo.

Rebuilding it from a book

In April I tried something different. On April 11 the rules behind the app were written out as ten "riffs" in a book in Lades, a tool I was building then, plus a nine-move "tune" for the whole app. On April 12 I gave three new Replit agents the same file, which says "The book is the spec. This file is not the spec," and told them to search the book before every decision.

All three built the easy moves, like the dark interface and stat chips. None built the move the book called the most important: never dead-end on an animal the app doesn't know. Where the book had no numbers, each agent wrote its own, and they disagreed: one build gives the honeybee and the dragonfly opposite flicker rates from the other two. In this test the rules were not enough; the book also needed the facts and numbers.

Turning it into a game

In September I started turning it into FieldVision, built with Replit Agent and Claude Code: a creature-collecting game for kids 8 to 12. The brief I pasted into Replit starts: "A real-world creature collecting game for kids who live in Roblox and Minecraft. Go outside, find a real animal or plant, and unlock its power: see the world through its eyes." One of the game rules is that after about 60 seconds of creature vision the game says "Now look with your own eyes."

FieldVision home screen in the Field Kit style
An early FieldVision home screen in the "Field Kit" direction, September 15, 2026. From the screenshots folder of the Animal-Vision_v2 repository.

I directed the look from screenshots. On one round I wrote "i saw the C screenshots. it is better," and then "C, but still I think there are too many lines and corners there." The calmer version became the design rules.

What changed most between March and September was how the app treats generated animals. In March they appeared in the grid looking exactly like the curated ones, on purpose. In FieldVision, scanning is a secondary, experimental path, generated animals are labelled experimental, and the app says on screen that a phone camera can't capture ultraviolet, polarised or thermal light. More about the finished app is on the project page.

Sources

  • GitHub mustafabagdatli-git/Animal-Vision-Vr, commit history 2026-03-25 to 2026-04-07 (fly, four animals, Wild Kratts profiles, scanning, generation, accuracy tasks #6 and #10, hearing, voice, publish times)
  • Replit app Animal Vision Vr, replit.md (scanning, generation, hearing, voice commands)
  • Replit apps BriskWorthlessTrialsoftware and Animal Eyes VR, replit.md (fly in a synthetic garden, camera at 8 cm); Animal Vision Camera, artifacts/animal-vision/app/index.tsx (Expo)
  • Replit app IntelligentBothProcedurallanguage, replit.md (the idea as written, "The book is the spec")
  • Replit apps IntelligentBothProcedurallanguage, ExternalSteelMath, ImpeccableRequiredTriggers (animal data files, server routes, not-implemented list), last updated 2026-04-12
  • experience-intent, research/animal-vision-book-content-harvest-2026-04-11.md and research/animal-vision-tune-page-reframe-2026-04-11.md
  • Replit app Animal Vision, attached_assets/Pasted-A-real-world-creature-collecting-game-for-kids-who-live_*.txt
  • GitHub animalvis/Animal-Vision_v2, issue #114 (owner comments, 2026-09-18), .agents/memory/creature-scanning.md and fieldvision-visual-language.md, screenshots/fieldvision-explorer-field-kit-kids.jpg (added 2026-09-15)
  • Portfolio, content/projects.json, animal-vision (images, captions, the on-screen honesty note)
Next entryMaking a crypto trading bot with AI →