Refactor overlay behavior to improve user interaction during descent transition. The start button now has its pointer events disabled when the overlay is hidden, preventing click interference with underlying elements while maintaining a smooth fade-out effect.
Update startDescent function to hide the start button during descent transition. This change prevents the button from capturing pointer events and allows user interactions with underlying elements, ensuring a smoother experience.
Remove 'ready' class from start button to prevent click interference during descent transition. This change ensures the overlay fades correctly while allowing user interactions with underlying elements.
Enhance music generation functionality by introducing a tape-length slider and progress tracking. Updated app.py to manage chunk lengths and progress callbacks, while frontend files now include a slider for selecting tape length and a progress bar to visualize the brewing process. Improved user experience during audio generation with real-time feedback on progress.
Refactor audio handling to return base64 WAV data URIs instead of writing to disk. Updated generate_song function to streamline audio response and removed list_songs functionality, enhancing session management by keeping tapes in memory. Adjusted frontend to handle new audio data format and removed unused functions for a cleaner codebase.
Add "play while waiting" feature to enhance user experience. Introduced a new button in index.html that allows users to engage with a garden mini-game while waiting. Updated main.js to handle the button's functionality, and modified ui.js to manage its visibility based on the current stage. Enhanced style.css with new styles for the button, ensuring it is visually appealing and interactive.
Add Game Boy feature and modal interaction. Introduced a Game Boy model in the scene, updated main.js to handle zoom interactions and modal display, and enhanced UI components in ui.js for opening and closing the Game Boy modal. Added corresponding styles in style.css for the modal's appearance and animations. Updated index.html to include a new label for the Game Boy interaction.
Optimize scene rendering by merging static geometries. Added a function to collapse static meshes in the scene into single meshes per material, significantly reducing draw calls. Excluded interactable and animated objects to maintain functionality. Updated main.js to integrate this optimization.
Implement day/night cycle and lamp interaction features. Updated main.js to manage the transition between day and night modes, including dynamic lighting adjustments and palette changes. Added a new lamp label in index.html for user interaction, and modified style.css for proper positioning of the label. Enhanced world.js to include outlines for the lamp and its components, improving visual feedback during interactions.
Add song metadata handling and collection feature. Updated app.py to generate and store song metadata alongside audio files, introduced a new API endpoint for listing songs, and enhanced frontend components in ui.js and main.js to manage song collection display and interactions. Modified index.html and style.css for improved UI presentation of the cassette collection.
Enhance interactable features and visual labels in the scene. Updated index.html to add a new collection label, modified main.js to manage hover interactions for both vending machine and cassette collection, and adjusted style.css for consistent label styling. Improved world.js to include outlines for the cassette pile and walkman, enabling better user interaction.
Add bird animation and cassette pile to the scene. Updated main.js to include bird movement and tail flicking behavior, and enhanced world.js with new cassette pile, walkman, and headphones models. Integrated cable geometry for visual detail and adjusted bird positioning on the bench.
Optimize rendering performance and scene management in main.js. Updated WebGLRenderer settings for lower power consumption, adjusted pixel ratio, and improved shadow map handling. Enhanced animation frame control for smoother transitions and reduced unnecessary computations in static scene objects.
Implement vending machine modal and audio generation features. Updated app.py to include audio URL for browser clients, enhanced index.html with a modal for user interaction, and added corresponding styles in style.css. Improved main.js to manage camera transitions and modal behavior during audio generation.
Add vending machine interaction features. Introduced a floating label for the vending machine in index.html, implemented hover effects and click handling in main.js, and styled the label in style.css. Enhanced world.js to include a visual outline for the vending machine during hover.
Enhance visual presentation and camera dynamics. Updated subtitle styling in index.html, refined camera movement and lighting in main.js, and improved cloud generation in world.js. Adjusted CSS for smoother transitions and animations, enhancing overall user experience.
Refactor main.js to enhance scene setup and integrate world building. Updated camera positioning, lighting settings, and removed placeholder objects in favor of a new world.js module. Improved intro choreography and added debug functionality for skipping the intro.