Inspiration

Old photos preserve a place, a person, and a moment, but recreating the same view years later is surprisingly difficult. Timeless Cam helps people return to a meaningful place, align an old photo with today's camera view, and build a private visual timeline of repeated visits.

What it does

Users choose an old photo, overlay it on the live camera, adjust its position, scale, rotation, and opacity, and capture the present-day view from the same angle. They can correct rotation and crop, compare visits with a slider or four presentation styles, edit timeline metadata, search their memories, and export the story as a searchable A4 PDF diary. Photos and metadata remain on the device.

What we built during Build Week

Timeless Cam existed before Build Week with the core flow: selecting an old photo, overlay-assisted alignment, capture, a comparison slider, and a basic timeline.

During Build Week, we substantially extended that baseline with:

  • Portrait and landscape capture controls
  • Post-capture rotation, cropping, and review
  • Editable title, place, date, and timeline metadata
  • A local phrase library for personal captions
  • On-device image analysis that recommends one of four comparison styles
  • Search across saved visual memories
  • A searchable A4 PDF diary export
  • A StoreKit 2 trial and purchase flow
  • Simplified Chinese, English, Japanese, and Korean localization
  • Reliability and interface refinements across the complete workflow

The repository separates the frozen baseline from the new work with the tag pre-build-week-baseline. Because the original project did not use Git, the baseline was transparently imported during submission preparation; we do not present that import commit date as its original creation date.

How we built it

Timeless Cam is a native iOS app built with Swift and SwiftUI. SwiftData stores timelines and metadata locally. PhotosUI and AVFoundation support photo selection and camera capture; Core Image handles image processing; Core Location supports optional place metadata; PDFKit produces the diary export; and StoreKit 2 manages purchases.

The experience is deliberately local-first. The app does not require an account, cloud backend, analytics SDK, or runtime AI service.

How Codex and GPT-5.6 helped

Codex with GPT-5.6 acted as an engineering partner throughout the Build Week extension. It helped us inspect the existing SwiftUI architecture, plan additions without breaking the original capture flow, implement and refine new screens, audit localization coverage, diagnose build and simulator issues, and verify the end-to-end experience.

GPT-5.6 was particularly useful for reasoning across product, code, and QA at the same time: keeping the interface simple while coordinating camera state, image editing, timeline metadata, PDF generation, StoreKit behavior, and four-language consistency.

The product direction and privacy boundaries remained human decisions. Codex accelerated implementation, review, and verification inside those boundaries.

Challenges

The hardest challenge was extending an existing camera workflow without making it feel heavier. Rotation, cropping, comparison styles, editable metadata, and export all introduce state that must remain consistent with the original image.

A second challenge was localization. Camera instructions, timeline editing, purchase states, and export text had to remain natural and complete across four languages. The final audit covered 405 keys per language with no duplicate keys, missing-key differences, or placeholder mismatches.

Accomplishments

We transformed a focused before-and-after camera into a more complete visual-memory tool while preserving its local-first character. The Build Week version supports the journey from alignment and capture through editing, comparison, search, timeline organization, and PDF export.

A fresh unsigned simulator build from the submitted repository completed successfully. The 2:20 public demo was verified on an iPhone 17 Pro Max simulator running iOS 26.4 and passed YouTube's copyright check.

What we learned

The best use of an advanced coding agent is not simply generating more code. It is maintaining context across architecture, product intent, edge cases, and verification. Clear privacy and scope constraints made Codex more effective because every implementation decision could be evaluated against the same product principles.

We also learned that small controls—orientation, crop correction, editable place names, and a recommended comparison style—can make the difference between a technical demo and something people will revisit.

What's next

Next, we plan to test the four-language experience with more real-world photo collections, improve accessibility, add richer multi-visit storytelling, and continue refining PDF layouts. We also want to explore optional, privacy-preserving assistance for alignment and memory organization without turning personal photo histories into cloud data.

Built With

Share this project:

Updates