Commit Graph

10 Commits

Author SHA1 Message Date
Jeff Emmett c1295e8c81 Merge server changes: fixed-width glyph cells, Web Worker animation
Incorporates uncommitted server-side improvements:
- VARIABLE_WIDTH_PALETTES + fixed-width <span class="c"> cells for grid alignment
- Web Worker-based animation timer (keeps running in background tabs)
- Passes fix_cells through animate_image() for animation frames

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 15:40:18 -07:00
Jeff Emmett 588fe0028c Add animation output: 5 image effects, pattern animation, GIF export
Extends the ASCII Art Generator with animation capabilities:
- 5 image effects (color cycle, wave, typewriter, pulse, glitch)
- Pattern animation via time-stepping phase parameters
- Browser playback with play/pause and frame counter
- Animated GIF export via server-side Pillow rendering (no new deps)
- New /api/animate and /api/animate-pattern endpoints

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 15:33:53 -07:00
Jeff Emmett 82192346d0 Auto-generate on upload, fill preview, fix re-upload
- Auto-generate: selecting a file immediately renders it (no separate
  Generate click needed)
- Auto-fit zoom now scales UP to fill the preview area, not just down
  to fit width. Uses min(scaleW, scaleH) to fit the limiting dimension.
- Fix re-upload: reset fileInput.value on click so selecting the same
  file again triggers the change event
- Patterns also auto-fit to fill the preview

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 17:06:25 +00:00
Jeff Emmett 16a5dbca11 Super high-res rendering: up to 1500 chars wide
- Width slider now goes to 1500 (was 500), default 300
- Resolution presets: Low (100), Med (300), High (600), Ultra (1000), Max (1500)
- Optimized renderer: fast pixel access via img.load(), run-length color
  grouping in HTML output (groups consecutive same-color chars into one span)
- 800-wide render in 0.5s, 1500-wide in 3.3s
- Base font reduced to 5px for ultra-dense display
- Container bumped to 4 CPU / 1GB RAM for heavy renders
- Uvicorn keep-alive timeout increased to 120s

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 04:16:36 +00:00
Jeff Emmett 0b4269941f Fix upload button: remove preventDefault that blocked file picker
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 04:08:07 +00:00
Jeff Emmett 7dbff3473a Fix mode tab buttons: explicit IDs, flex-wrap, z-index
- Add explicit IDs to mode tab buttons (modeImage, modePattern)
- Bind click handlers directly by ID instead of querySelectorAll
- Add type="button" to prevent form submit behavior
- Change controls flex-wrap to wrap (was nowrap, hiding tabs on narrow screens)
- Add user-select: none and z-index to tab buttons
- Dedicated switchMode() function for cleaner state management

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 02:31:51 +00:00
Jeff Emmett 6a4aa2456f Make mode tabs and buttons larger and more prominent
- Mode tabs now 14px bold with gradient active state and glow
- Generate/Random buttons bigger with box-shadow
- Better hover states with background highlight
- Tabs have visible border container for clarity

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 02:27:26 +00:00
Jeff Emmett 01fb200add Fix UX: double file picker, mode tabs, touch/pinch zoom
- Fix double file dialog by preventing label click bubble
- Rewrite mode switching for clean Image/Patterns tab toggle
- Add pinch-to-zoom for touch devices (two-finger gesture)
- Ctrl/Cmd+scroll wheel zoom (also captures trackpad pinch)
- Multiplicative zoom steps (1.2x per click) for smoother feel
- Auto-fit zoom after every render
- Fix copy button for pattern mode (no re-fetch needed)
- Clean up all event handlers

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 02:21:23 +00:00
Jeff Emmett b1874eace7 Add exotic palettes, pattern generator, and layout improvements
- 17 new exotic palettes: hieroglyph, cuneiform, thai, arabic, devanagari,
  ethiopic, georgian, tibetan, alchemical, dominos, mahjong, dingbats,
  playing cards, yijing, box drawing, math symbols, flora, weather
- Pattern generator with 10 types: plasma, mandelbrot, spiral, waves,
  nebula, kaleidoscope, aurora, lava, crystals, fractal_tree
- Random pattern button with rainbow gradient
- Mode tabs (Image / Patterns) in controls bar
- Preview area now fills full viewport (header/footer hidden)
- Slimmer controls bar

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 02:13:32 +00:00
Jeff Emmett ebd4b12628 Initial release: ASCII Art Generator
- Image to colorful Unicode art with 20 palettes (wingdings, braille, hires, dots, kanji, etc.)
- GIF animation support (frame-by-frame rendering)
- Floyd-Steinberg dithering for fine detail
- FastAPI web app with drag-drop upload, zoom controls, fullscreen, original image comparison
- Width up to 500 characters for high-resolution output
- Docker deployment with Traefik routing at ascii.jeffemmett.com
- rSpace integration as rcreate app (#30)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 01:43:17 +00:00