Birds Music – A Procedural Audio-Visual Experience
A fully procedural, interactive audio-visual “relaxation toy” built with Three.js and its WebGPU renderer. It simulates a flock of thousands of birds (boids) whose movements generate a dynamic, generative musical soundscape. Users can interact with the flock using their mouse and customize nearly every aspect of the visual and flocking behavior through a detailed control panel.
This project is an alpha release prototype of a work in progress. Stay tuned for more updates.
Currently closed source due to early stage prototype but will eventually go open source when it’s cleaned up a bit.
Requirements
JavaScript (ES6+): The browser must support JavaScript version 6 or higher.
WebGPU: The browser must support WebGPU. A modern version of Chrome or Edge is recommended for the best WebGPU support
How To Run
Click this url Birds Music to open and run in your browser. Maximise your browser for best experience.
Features
High-Performance WebGPU Simulation: Utilizes WebGPU compute shaders via Three.js Shading Language (TSL) to simulate up to 32,768 birds smoothly on the GPU.
Interactive Flocking: Classic boids algorithm (Separation, Alignment, Cohesion) with additional parameters for “freedom” and “center attraction”.
Dynamic Mouse Interaction: The mouse pointer acts as a repulsive force, allowing you to “disturb” the flock and influence its movement.
Procedural Audio with Tone.js:
Generative Soundscapes: Five unique, selectable soundscapes (e.g., Ambient, Forest, Ocean) with different chord progressions, tempos, and synth textures.
Interactive Sound:
Flock activity level dynamically influences the background ambience
Mouse movement speed generates a corresponding “wind” sound, enhancing the feeling of interaction.
Advanced Visual Customization:
Lighting: Full control over a directional light (color, intensity, position) and an ambient light.
Procedural Skybox: Customize the sky with gradient top/bottom colors and overall intensity.
Bird Material: Switch between Matte, Glossy, and Metallic materials with adjustable shininess and opacity.
Bird Size: Randomize the size of individual birds or reset them to a uniform scale.
Comprehensive GUI: A lil-gui panel provides real-time control over all simulation, lighting, material, and camera parameters.
Preset System: Save your favorite configurations as presets in your browser’s local storage. Load, delete, and switch between them easily. Comes with several built-in presets to showcase different moods.
Intelligent Camera:
Standard OrbitControls for manual navigation.
An auto-rotation feature that gracefully kicks in after a few seconds of inactivity, turning the experience into a dynamic screensaver.
Technical Breakdown
Core Technologies:
Three.js: The foundational 3D library.
WebGPU Renderer: Leverages the modern, high-performance WebGPU API for rendering and computation.
Three.js Shading Language (TSL): Used to write the GPU-based bird simulation logic in a JavaScript-friendly way.
Tone.js: A powerful Web Audio framework for creating the complex, scheduled, and interactive procedural music and sound effects.
lil-gui: For the user-friendly control panel.
Simulation Architecture:
The position and velocity of each bird are stored in GPU buffers (instancedArray).
Two compute shaders are dispatched on every frame:
computeVelocity: Calculates the new velocity for each bird based on flocking rules, mouse interaction, and other forces.
computePosition: Updates the bird’s position based on its new velocity.
This entire simulation runs on the GPU, freeing the CPU to handle audio, UI, and other logic, enabling a very large number of birds.
Rendering:
A single BirdGeometry is created for the bird model.
The birds are rendered using a single draw call via GPU instancing.
A custom NodeMaterial (written in TSL) reads the position, velocity, and scale for each instance from the GPU buffers to correctly position, orient, and scale each bird in the scene.
How to Use & Explore
This application is designed for exploration and relaxation. Here are some ways to get started:
Basic Interaction: Simply move your mouse across the screen. You’ll see the birds react to your pointer, and you’ll hear the “wind” sound change with your movement speed.
Camera:
Click and drag to rotate the view.
Right-click and drag (or two-finger drag) to pan.
Scroll to zoom in and out.
Stop moving the mouse for a few seconds, and the camera will begin to rotate automatically.
Audio Controls (Bottom-Left):
Click “Audio Controls” to expand the panel.
Press “Play Music” to start the generative soundscape.
Use the sliders to adjust the master volume, the volume of individual musical layers (Melody, Synth, Pad), and the amount of reverb.
Use the “Soundscape” dropdown to completely change the musical theme.
Simulation Controls (Top-Right):
Click the “Simulation Controls” bar to open the main GUI.
Presets: The best way to start is by trying the different options in the “Load Preset” dropdown. This will show you the vast range of possible aesthetics.
Flock: Adjust Separation, Alignment, and Cohesion to change how the birds fly together. Low separation and high alignment/cohesion create tight, flowing murmurations.
Lighting: Play with the Skybox, Directional Light, and Ambient Light folders to become a virtual cinematographer. Change the time of day, create alien worlds, or go for a moody, dark atmosphere.
Bird Material: Switch the Type to Metallic and increase the Shininess for a completely different look.
Randomize! Don’t be afraid to use the “Randomize” buttons in each section to discover unexpected and beautiful combinations. If you find one you like, give it a name in the “Presets” panel and save it!
Credits
This project was inspired by the original three.js birds examples and further procedural audio/visual extensions were implemented by sonicviz.com.
SafeGuardianAI is an innovative emergency response platform that harnesses the power of artificial intelligence to provide critical support during catastrophic events.
By seamlessly integrating real-time data analysis, offline capabilities, and community-driven support, SafeGuardianAI bridges the gap between individuals, communities, and emergency services, ensuring a more coordinated and effective response to disasters.
Key Features
AI-Powered Chat Interface: Interact with GuardianAI for personalized emergency assistance and real-time guidance.
Multi-Modal Activation: Trigger emergency mode via text, voice commands, or automatic motion detection for hands-free operation.
Smart User Profiles: Store vital information securely for quick access during emergencies, including medical history and emergency contacts.
Offline Functionality: Access critical guides and emergency procedures without an internet connection, ensuring help is always available.
Real-time Situation Assessment: Receive tailored responses and advice based on AI analysis of current conditions and user input.
Community Coordination: Facilitate local collaboration during large-scale events, connecting neighbors and organizing grassroots relief efforts.
Resource Management: Locate and manage emergency services, shelters, and supplies with an interactive, real-time updated map.
Data-Driven Insights: Collect anonymous data to improve future disaster responses and enhance predictive capabilities.
Multi-lingual Support: Communicate effectively in multiple languages to assist diverse populations.
Power-Efficient Design: Optimized for long battery life to remain operational during extended power outages.
Quapp Quickstart SaaS Dev Kit with Quasar and Appwrite
Elevate Your SaaS Development with Quapp Quickstart SaaS Dev Kit
In the dynamic world of software development, the Quapp Quickstart SaaS Dev Kit stands out as a beacon of innovation and efficiency. This comprehensive framework, powered by Quasar and Appwrite, is designed to tackle the most common challenges faced by developers, offering a seamless and robust solution for building modern SaaS applications.
Features That Empower
Authentication: Secure your application with built-in authentication features, including signup, login, and password recovery forms, all backed by server functions.
Database: Effortlessly manage and display sample data collections, ensuring your application is both functional and user-friendly.
Payments: Integrate Stripe for subscription-based and one-off payments, or utilize Fastspring for webstore transactions. The dev kit includes server functions to streamline these processes.
Transactional Email: Keep your users informed with transactional emails powered by Sendgrid, ensuring reliable communication.
AI Services: Leverage advanced AI capabilities with examples like multilingual OCR for product label health analysis and the AI RAG Researcher, which utilizes multiple AI engines and search options for comprehensive research.
Deployment: Simplify your deployment process with GitHub and Vercel for continuous integration, ensuring your application is always up-to-date.
Security: Protect your application with built-in obfuscation for production, safeguarding your code from potential threats.
Performance: Enhance your application’s performance with code splitting, ensuring faster loading times and a smoother user experience.
Benefits That Transform
Comprehensive Solutions: Address common SaaS development challenges with the powerful combination of Quasar and Appwrite, providing a secure and scalable foundation for your application.
Efficient Frontend: Build responsive and high-performance applications with Quasar’s Vue.js-based framework, featuring a Single Page Application (SPA) architecture for rapid deployment and idea validation.
Cross-Platform Potential: Future-proof your application with Quasar’s cross-platform deployment options, allowing you to reach users on web, mobile, and desktop platforms.
Integrated Landing Page and Admin Dashboard: Create a cohesive user experience with an integrated landing page and admin dashboard, featuring AI-powered applications, interactive marketing quizzes, and standard SaaS modules like pricing, blog, and contact forms.
Internationalization: Cater to a global audience with an internationalized admin panel, available in English, Spanish, and Japanese, showcasing the versatility of the I18n example.
Customizable Admin Dashboard: Empower your admin users with a customizable dashboard, featuring AI-powered applications, role-based UI views, and additional functionalities like test data generation and deletion.
Appwrite BaaS: Benefit from Appwrite’s secure authentication, user management, database, and storage services, along with support for serverless functions, ensuring a robust backend infrastructure.
Flexible Payments: Offer flexible payment options with Stripe for subscription and one-off payments, or switch to other providers as needed. The dev kit also includes Fastspring webstore payment links for demonstration purposes.
Reliable Communication: Utilize Sendgrid for transactional emails and explore real-time messaging options with Appwrite BaaS, ensuring seamless communication with your users.
Optimized Performance: Deliver a superior user experience with optimized code delivery, resulting in faster loading times and enhanced performance.
Enhanced Security: Protect your application with built-in code protection, ensuring your data and code remain secure.
The Quapp Quickstart SaaS Dev Kit is more than just a framework; it’s a transformative tool that empowers developers to build secure, robust, and scalable SaaS applications with confidence and efficiency. Ready to elevate your SaaS development? Dive into the world of Quapp and unlock the full potential of your applications.
Ready to take your SaaS development to the next level? Explore the Quickstart SaaS Dev Kit and unlock the full potential of your applications with and
LabelLens is an innovative web app that lets you quick scan a product label using your smartphone or device camera, and provides a clear, easy-to-understand breakdown of what’s in your food and other products, helping you understand what these confusing terms are & leading to more informed choices about the products you buy.
Key Features:
Instant Ingredient Analysis: Simply snap a photo of any food label, and LabelLens will quickly identify and explain all ingredients, highlighting any potential concerns.
Wellness Insights: Get a recommended health rating and analysis for each product, helping you make smarter choices aligned with your dietary and wellness goals.
Multilingual Support: LabelLens can recognize and translate food labels in multiple languages, making it an invaluable tool for travelers or when shopping for international products.
Customizable Alerts: Set up personalized ingredient watchlists to easily avoid allergens or other ingredients you’re trying to cut back on. Additionally, you can also scan for healthy ingredients you want to focus on.
Save and Compare: Build a database of your scanned products, allowing you to easily track and compare different options over time.
LabelLens is built using Quaser and Appwrite frameworks, and is a practical demonstration of a new micro-SaaS framework utilising these platforms. More news on that coming soon!
Algorithmic Music with seeded HMM and Stochastic Noise
A demonstration of a prototype generative music system using a variety of techniques from seeded HMM to stochastic noise.
The prototype has two generative music systems:
A generative controller that uses a hidden markov model to generate new compositions from a seed music database
A random music generator using a variety of algorithms from a windchime emulator to stochastic noise.
The system is built with Java, and uses an open source synth ZynAddSubFX as the sound source.
It was written in 2006 based on research work I did for my Music Masters degree in 2003, and I’m currently porting parts of it to C#/Unity & HTML5/WebAudio.
In 2007 I produced 2 relaxation music albums each with 4 x 15 minute tracks using this system, mixed with ambient environment nature sounds from another generative system. Currently these are offline but I hope to redistribute them again sometime. Here is a track from Album #1:
Generative music systems are a rich field of exploration, and the methods presented here are well known.
I have extended them a little more with some added features such as:
Object database containing seed compositions with metadata
More parameters for randomization and variability
More experimentation with noise generation algorithms to drive music generation
Potential uses of such as system are varied:
Affective computing – detected user emotions to drive system feedback via music mood matching
Art and music therapy
Music education
Some screen shots are below, followed by a video that briefly explains both systems.
Seeded HMM Music Generator
Stochastic Random music generator
Check out the video for a more in depth explanation.