Changelog
[0.5.0] - Current Release
Overview
Version 0.5.0 represents the initial stable release of ruclouds, featuring a complete noise-field cloud simulation system with cross-platform terminal support, real-time rendering, and comprehensive customization options.
Major Features
Core Simulation
- Implemented fractal Brownian motion (fBm) noise field with 4-octave sampling
- Added domain warping for wispy cloud shapes
- Implemented wind physics model for directional cloud drift
- Pure function sampling pipeline for seamless terminal resizing
Rendering System
- Half-block rendering technique for double vertical resolution
- FrameBuffer double buffering with diff-based ANSI emission
- Color palette system with 4 built-in schemes (white-grey, sunset, midnight, storm)
- Custom hex color palette support
- Multi-color mode support (truecolor, 256-color, 16-color with auto-detection)
Terminal Management
- RAII guard for terminal state safety (raw mode, alternate screen, cursor)
- Cross-platform color capability detection
- Panic hook for guaranteed terminal cleanup
- Real-time terminal resize handling without simulation reset
User Interface
- Non-blocking keyboard event polling
- Live keybindings for runtime parameter adjustment
- CLI argument parsing with clap
- Fixed-timestep main loop with configurable FPS
Development & Documentation
- Comprehensive ARCHITECTURE.md design document
- MkDocs documentation site with multiple sections
- GitHub Actions workflow for multi-platform binary releases
- MIT licensing
Technical Implementation
Module Structure
config.rs- CLI parsing and runtime configurationactions.rs- Action enumeration for keystrokesinput.rs- Non-blocking input pollingsim/- Cloud simulation (noise field, wind, sampling)render/- Rendering pipeline (buffer, half-block, palette)term/- Terminal state management (guard, capability detection)
Key Architectural Decisions
- Pure function sampling dependent only on (x, y, time, wind_offset, config)
- Double-buffer diffing to minimize terminal I/O
- RAII pattern for terminal state safety
- Cross-platform compatibility via crossterm
Documentation
- Added comprehensive README with usage examples
- Created detailed documentation site with MkDocs
- Documented API reference and code structure
- Added contribution guidelines
Bug Fixes & Improvements
- Fixed terminal cleanup on panic and Ctrl+C
- Improved color mode detection across platforms
- Optimized ANSI emission through frame diffing
Known Issues
- Some terminals may have color palette selection issues (to be addressed in future)
- Storm mode may render base terminal shades on some configurations (to be fixed)
Platform Support
- Windows: PowerShell, pwsh, cmd.exe
- Unix: bash, Kitty, Alacritty, and other modern terminals
- macOS: Terminal.app, iTerm2 (limited testing)
Dependencies
- Rust 1.70+ (2021 edition)
- crossterm 0.28
- clap 4
- noise 0.9
- anyhow 1
- rand 0.8
Development History
Initial Development
The project was built following the ARCHITECTURE.md design document, implementing features in a logical order from terminal safety through simulation to rendering.
Documentation Phase
Added comprehensive documentation including MkDocs setup, API reference, and contribution guidelines to support open-source development.
Release Preparation
Configured GitHub Actions for multi-platform binary releases and updated repository metadata for distribution.