An open-source computer vision sound synthetizer framework designed to help blind and visually impaired individuals perceive their surroundings through sound. It uses a device’s camera and translates visuals into real-time, informative soundscapes.
The project is built with a focus on accessibility, performance, and extensibility, using vanilla JavaScript and modern browser APIs to run efficiently on a wide range of devices, especially mobile phones.
ui/dev-panel/.)AcoustSee primary developer interface.
This UI is a powerful dashboard for development and testing. It is enabled by the ?debug=true query param.
How to Activate:
Add ?debug=true to the end of the URL.
Example: http://mamware.github.io/acoustsee/future/web/index.html?debug=true
Features:
ui/log-viewer.js utility).ui/console-ingest.js to capture console messages and uncaught errors into the log viewer; this is optionally installed by the panel.Max Notes and Motion Threshold.Auto FPS, the Web Worker, and Buffer Transfer for performance testing.Start/Stop Processing and Save/Load settings to/from localStorage.Developer notes:
ui-registry at ui/ui-registry.js so the bootloader and other modules can find and open the panel without relying on global functions.getComponent('dev-panel') from the registry.The application is built on a decoupled, headless architecture.
main.js: The entry point that initializes the system and loads the appropriate UI.core/engine.js: A “headless” state machine that manages all application logic via a command pattern. It has no knowledge of the DOM.video/frame-processor.js: The Orchestrator that manages the video pipeline and delegates to Specialist Workers.workers/frame-provider-worker.js: The entry point for camera data, running its own requestAnimationFrame loop.workers/motion-worker.js (and others): Specialist Workers for analysis tasks like motion detection.audio/audio-processor.js: Manages the Web Audio API, sound profiles, and synths.ui/ directory: Contains pluggable UI modules (e.g., touch-gestures/ for accessible UI, dev-panel/ for debugging).Learn how AcoustSee performs lightweight, heuristic-based object detection without machine learning:
This is perfect for educators and students learning computer vision fundamentals without the complexity of neural networks.
This project is open-source and contributions are welcome. To add a new grid, synth, or language, add the corresponding file in the video/grids/, audio/synths/, or utils/ directory and ensure it integrates with the command handlers and registries.
P.L.U.R.