Mooncode


MoonCode is a digital–physical communication system where sending and receiving messages are unlocked through shared moon moments. It includes a mobile app, a rotatable moon lamp, and a printer that produces physical messages. MoonCode reframes messaging as a slower, more intentional exchange shaped by waiting and context rather than immediacy.



( ROLE ) UIUX, Design Communication, Product Design

( FORMAT ) App, printer, collection stand

( Tool ) Figma React / Supabase / TensorFlow.js Arduino / Fusion 360 / 3D Printing

( YEAR ) 2026








( WHY )

Re-imagining long-distance connection

Modern messaging prioritizes speed, convenience, and constant access. I wanted to explore what communication might feel like if it required presence, anticipation, and intention.

Across 120 interviews, one third of participants named the moon as a shared poetic symbol.


( WHO )










( HOW IT WORKS )

01 - Send message


To initiate a message, the sender takes a photo of the moon, which unlocks the ability to compose and send their letter.





( HOW IT WORKS )
02 - Receive message


To view an incoming message, the recipient captures the moon in their own context and time. This shared condition creates a sense of reciprocity, linking both ends of the exchange through a similar action.







( HOW IT WORKS )

03 - Printed keepsake


Once the exchange is complete, the message is printed as a receipt rather than stored in the app. These printed messages can be collected over time, creating a lasting record of each exchange.








( DESIGN PROCESS )

Digital Design & Development


The digital experience was developed alongside the physical system. We began by defining key flows through low-fidelity wireframes, focusing on how moon capture would shape the act of sending and receiving messages. 




Integrated real-time message syncing and trained a lightweight vision model to recognize the moon from user-captured images. Together, these components allowed the app to function as both an interface and a gatekeeper for each exchange.









( DESIGN PROCESS )

Refining the app experience


With the core system in place, I refined the surrounding experience through onboarding and message archiving.

Onboarding captures simple personal context, such as name and location, which helps ground each exchange when viewing previous messages in the archive page.









( DESIGN PROCESS )

Physical prototype & fabrication


The physical system was developed in parallel with the digital experience. I began by prototyping the internal electronics, connecting the printer module and LED components to the control logic that responds to incoming messages. Due to the compressed timeline, enclosure design and fabrication progressed alongside functional testing, with iterative 3D-printed housings allowing us to refine form and assembly as the system came together.







Extending the experience


As printed messages accumulated, I began thinking about how these artifacts could be meaningfully displayed rather than simply collected.

We switched to a semi-transparent paper to allow overlapping moon phases to remain visible when layered on the stand. This shift informed the final design of the collection stand, which offers a simple way to gather and view messages over time.




©2026 RIGHTS RESERVED