Point. Shoot. Imagine.
MuseCam is a camera with a strange roll of film. Pick a style on the touchscreen, point it at something, and press the shutter. The photo comes back as a clay miniature, a crayon drawing, a scene from an old video game, or one of the other worlds the camera can create.
I built it around a Raspberry Pi, a camera module, and a touchscreen, then designed and printed an enclosure to hold everything together. It has a physical shutter button, a battery, and a small speaker for sound cues. You can take pictures, browse the gallery, and try different styles directly on the camera.
The image transformation happens through Meta's Muse Image model. The Pi takes care of capturing the photo, sending it over Wi-Fi, and displaying the result when it's ready.
Eighteen kinds of film
The camera currently has 18 styles. Some change the material of the entire scene: Tiny Clay World rebuilds it in modeling clay, Paper Universe turns it into folded paper, and Soft Spot gives everything a felt-and-fabric treatment. Age of Legends reimagines the people and their surroundings as a fantasy world. Others borrow from animation, storybooks, photography, and games.
Fridge Masterpiece redraws a photo with wobbly crayon outlines and uneven coloring. Player One places small pixel-art characters inside a full game scene. Insert Disc 2 goes for chunky early-console characters, soft textures, and a wider portrait composition.
Each style is a prompt that tells the model how to reinterpret the photograph while retaining its recognizable subjects and scene. Getting those instructions right took some iteration. An early console-style prompt added people to an empty room. The revised version explicitly keeps empty spaces unoccupied. Another needed more specific directions about framing and textures to get the intended game aesthetic.
The gallery also has a Restyle action, so you can apply a different treatment to a saved original. It creates a separate entry, keeping the earlier result around for comparison.
Making it feel like a camera
One of the main pieces of work was keeping photography separate from image generation. Waiting for a model response shouldn't stop you from taking the next picture.
MuseCam saves the original locally and puts the transformation in a background queue. The viewfinder returns after capture, and a notification and sound cue let you know when a result is ready. If Wi-Fi drops, photos stay queued on the camera until it can reconnect. Taking the picture works offline; generating the new image still needs a connection.
The touchscreen UI is built with React and runs in Chromium. A Python service underneath it owns the camera, physical controls, local SQLite queue, and network requests. The interface includes a style picker, a gallery with pinch-to-zoom, and settings for Wi-Fi, volume, and device updates.
Fitting it into a handheld build
MuseCam uses a Raspberry Pi 3B+, Raspberry Pi Camera Module 3 Standard, a Waveshare 4.3-inch 800×480 touchscreen, a PiSugar 3 Plus battery board, and an I²S amplifier and speaker. The enclosure brings those parts together with the shutter button and magnet-retained side doors for access to the Pi's ports.
The camera keeps its preview and still-image streams allocated together, so taking a photo doesn't require switching camera modes before returning to the viewfinder.
The hardware build guide includes the parts list, six printable enclosure files, wiring reference, and assembly photos.
A shared photo roll
Alongside the camera, I built a web photo roll with Next.js, Neon Postgres, and Vercel Blob. Sharing a result from the device gives it a public page, so the pictures can leave the camera without copying files off an SD card.
Unshared photos stay in private storage. Originals only appear publicly when sharing originals has been explicitly enabled; those pages include a before-and-after comparison.
The enclosed camera is working, and the printable parts and assembly guide are in the repository. The core loop is simple: pick a style, take a picture, and see how it comes back.
Browse photos from MuseCam or explore the source code on GitHub.