A React application that converts images to animated ASCII art with smooth, organic row-by-row animations. Coded for testing with Cursor.
- 🖼️ Image to ASCII conversion with customizable resolution
- 🎨 Colored ASCII art output
- ✨ Smooth row-by-row fade-in animation
- 🌊 Organic left-right floating animation with independent row movements
- 📱 Responsive design with mobile optimizations
- ♿ Accessibility support (reduced motion)
- Node.js (v14 or higher)
- npm or yarn
npm installnpm startThe app will open at http://localhost:3000
npm run build- Place your image file in the
publicfolder - Update the
imageSrcprop insrc/App.tsxto point to your image - The app will automatically convert the image to ASCII art and display it with animations
Use any image the browser can load (JPG, PNG, GIF, WebP, etc.), then:
- Add or copy your image into the
public/directory (e.g.public/my-photo.png). Nested folders also work (public/images/selfie.jpg). - Open
src/App.tsxand update theimageSrcprop passed toAsciiDisplay. Use a root-relative path (e.g."/my-photo.png"or"/images/selfie.jpg"). - If the dev server was not already running, start it with
npm start. Otherwise it will hot-reload automatically. - Refresh the browser if you do not see the change right away; cached images can linger, so appending a query string like
"/my-photo.png?v=2"helps.
Tips:
- High-contrast images produce clearer ASCII art.
- Prefer files under ~2 MB for quicker conversion.
- If you see an error overlay, double-check the filename and folder path.
You can customize the ASCII conversion in src/components/AsciiDisplay.tsx:
resolution: Controls the density of ASCII characters (default: 0.15)grayscale: Toggle between colored and grayscale outputcharSet: Choose from different character sets (standard, detailed, blocks, minimal)aspectRatioX/Y: Adjust horizontal and vertical stretch factors
- React 19
- TypeScript
- Create React App
MIT