Repository navigation
Releases: pshycodr/phosphor-cam
Releases · pshycodr/phosphor-cam
Release list
v1.1.2
Version: v1.1.2
- Front camera preview is now mirrored, like a normal selfie camera
- Photos and videos now save to the same folder
- Fixed saving on Android
- New in-app notifications confirm when a photo or video is saved
- Faster startup: the font is now bundled with the app instead of downloaded from Google Fonts
- The app now runs only on Android 11 and above
- Smaller, optimized build and other internal fixes
- remove incorrect internet permission
Full Changelog: v1.1.1...v1.1.2
v1.1.1
v1.1.0
Release Notes: Off-Main-Thread Rendering
2026-09-30
Highlights
- Rendering now runs in a Web Worker. All five render modes (ASCII, dither, halftone, voxel, lines) and the full effects pipeline draw on an
OffscreenCanvasowned by a worker, so the UI (sliders, buttons, panels) no longer competes with the render loop. - Same renderers, same settings. Existing renderers were adapted rather than rewritten. Rendering logic, settings, and the registry are unchanged.
- Added: footer in the settings panel.
Added
- Footer in the settings panel.
src/worker/render.worker.ts: owns the canvas and runs the render pipeline.src/worker/renderWorkerController.ts: the only main-thread object that talks to the worker (canvas transfer, frame back-pressure, settings sync, capture and text-export requests, stats).src/worker/protocol.ts: typed messages shared by both sides.
Changed
Viewportno longer runsuseFrameLoop. It creates the canvas and worker on mount, then a small frame pump hands camera frames to the worker.useFrameLoopis no longer used byViewport.- The canvas is created inside an effect instead of JSX. A canvas can only be transferred to a worker once, so this keeps React StrictMode's double mount from throwing
InvalidStateError. - Canvas resizing goes through the worker. The main thread can no longer set
width/heighton the transferred canvas. - Performance stats (fps, render time) are posted by the worker every ~20 frames instead of being sampled with
Math.random().
Full Changelog
url: v1.0.1...v1.1.0
v1.0.1
Preparing for F-droid release
this only adds fastlane style metadata, everything else remains same
Full Changelog: v1.0.0...v1.0.1
v1.0.0
Phosphor Cam v1.0.0
The first Android release of Phosphor Cam.
Phosphor Cam is a client-side camera app that transforms live camera input into ASCII, dithering, halftone, lines, and voxel visuals. Everything runs locally in the browser or Android app.
Highlights
- First Android release powered by Capacitor
- Live camera rendering with multiple visual modes
- Video recording of rendered canvas output
- Save captured images
- Copy generated ASCII art to the clipboard
- Firefox and Safari support (thanks to @mmarinero)
- PWA support
- Refactored rendering pipeline
- Refactored state management
- Fully client-side processing with no backend required
Android
The Android version packages the existing client-side application as a native Android app while keeping the rendering pipeline in the web layer.
The app can run Fully offline
Download
Download Phosphor Cam v1.0.0 for Android
What's Changed
- Copy visible ASCII art · #1
- Video recording · #2
- UI refactor · #3
- Firefox/Safari support · #5
- PWA support · #6
- Rendering pipeline refactor · #8
- Android app · #9