- Real-Time Rendering – Live ASCII conversion with performance optimization (60+ FPS)
- High-Quality Capture – Export 4K resolution ASCII art images
- Customizable Settings
- 5 character sets (standard, simple, blocks, matrix, edges)
- Adjustable font size/resolution (6-30px)
- Contrast and brightness controls
- Color mode and invert options
- Camera Controls
- Front/back camera switching
- High-quality snapshot export
- ASCII text copy to clipboard
- Video recording capability
- Performance Monitoring – Real-time FPS and render time display
# Clone the repository
git clone https://github.com/pshycodr/phosphor-cam.git
cd phosphor-cam
# Install dependencies
npm install
# Start development server
npm run devVisit http://localhost:5173 to see the app in action!
- Grant Camera Access – Allow browser to access your camera when prompted
- Adjust Settings – Click the settings icon (⚙️) to customize the ASCII effect
- Capture Images – Press the shutter button for high-quality exports
- Switch Cameras – Use the flip button (🔄) to toggle between front/back cameras
- Record Video (COMMING SOON) – Click the record button (📹) to start/stop video capture
- React 18 – UI framework
- TypeScript – Type safety
- Vite – Build tool
- Canvas API – Real-time rendering
- MediaStream API – Camera access
- Tailwind CSS – Styling
- Lucide React – Icons
Requires a modern browser with support for:
getUserMediaAPICanvas 2Drendering context- ES6+ JavaScript features
✅ Chrome 90+ | ✅ Firefox 88+ | ✅ Safari 14+ | ✅ Edge 90+
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please read CONTRIBUTING.md for guidelines.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
If you found this project helpful, please consider giving it a star! It helps others discover the project.
Have questions or suggestions? Open an issue or reach out!


