Skip to content

Latest commit

ย 

History

715 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Wavgen.ca โ€” Creative Technology Portfolio & Teaching Reference

Website GitHub Profile


๐Ÿš€ About This Project

Wavgen.ca is a modern, meticulously crafted portfolio and creative technology playground by Rob McDonald โ€” a digital pioneer, artist, and developer based in Toronto. This site is more than a showcase: it is a living reference for web development, creative coding, and the intersection of music, art, data, and technology.

  • Fully open-source, Eleventy-powered static site โ€” fast, accessible, and easy to extend.
  • Comprehensive, beginner-friendly code comments โ€” every meaningful line and block is explained for learning and onboarding.
  • Professional, creative, and playful design โ€” purple/yellow theme, satirical "10x Developer Stackโ„ข", and unique sections.
  • Responsive, accessible navigation โ€” desktop dropdowns, mobile hamburger menu, and smooth user experience.
  • Showcases work in Music, Video, Data & Tech, and Art โ€” each with 4 balanced, thoughtfully designed subsections.
  • Advanced integrations โ€” ready for AI, cloud, and real-time generative art.

๐Ÿ† Project Highlights

  • Teaching Reference:
    • Every file is commented to a teaching standard (see summary).
    • Great for beginners, educators, and anyone learning modern web dev.
  • Creative Portfolio:
    • Music genres, video art, generative visuals, data science, and more.
    • Satirical and serious content blend for a unique digital presence.
  • Modern Web Stack:
    • Eleventy (11ty), Nunjucks, Tailwind CSS, Node.js/Express, GitHub Pages.
  • Accessible & Responsive:
    • Works beautifully on all devices. Keyboard and screen reader friendly.
  • Open to Contributions:
    • Clear structure, detailed comments, and a welcoming approach for all skill levels.

๐Ÿงฉ Site Structure & Navigation

  • Main Sections:
    • Music: Electro, Ambient, Melodic, Breaks, Experimental
    • Video: Realtime, Mapping, Mixing, Editing
    • Data & Tech: Web Dev, Coding, Gen AI, Cloud
    • Art: Painting, Drawing, Modelling, Printing
  • Special Features:
    • "10x Developer Stackโ„ข" (Web Dev) โ€” a tongue-in-cheek nod to tech culture
    • "Transcendent Mastery" (Painting) โ€” playful claims of artistic reincarnation
    • "Litho Legacy Evolution" (Printing) โ€” celebrating Canadian lithographic heritage
  • Navigation:
    • Desktop: 4 main sections with dropdowns
    • Mobile: Compact, scrollable hamburger menu

๐ŸŽต๐ŸŽฌ Real Multimedia Streaming Integration

The site features fully functional music and video players with real content streaming:

๐ŸŽต SoundCloud Music Player

  • 10 real tracks from The Waveform Generation with official SoundCloud iframe embeds
  • Direct streaming on the site using exact embed codes from SoundCloud's share/embed dialog
  • Genre filtering (Electro, Ambient, Melodic, Breaks) with responsive playlist UI
  • Multi-platform links to Bandcamp, Apple Music, and YouTube as backup options
  • Professional error handling with graceful degradation and helpful user messaging

๐ŸŽฌ YouTube Video Player

  • 5 real videos from Rob McDonald's YouTube channel with quality optimization
  • HD-prioritized playback using YouTube embed parameters (vq=hd1080&hd=1)
  • Clean presentation with reduced YouTube branding (modestbranding=1)
  • Category filtering and responsive video playlist interface
  • Fullscreen support and professional video player controls

๐Ÿ“š Educational Code Documentation

  • Comprehensive commenting on every meaningful line for teaching purposes
  • ES6 class architecture demonstrating modern JavaScript patterns
  • Third-party API integration patterns for SoundCloud and YouTube
  • DOM manipulation and event handling best practices
  • Error handling and user experience design principles
  • Real-world streaming integration without placeholder content

๐Ÿ› ๏ธ Tech Stack

  • Eleventy (11ty) โ€” static site generator
  • Nunjucks โ€” templating engine
  • Tailwind CSS โ€” utility-first styling
  • Node.js โ€” for development server and build tools
  • Express.js โ€” local preview and static serving
  • GSAP (GreenSock) โ€” professional animation library for gallery system
  • Custom JS โ€” for navigation, animation, and interactivity
  • GitHub Actions โ€” for CI/CD and deployment

๐ŸŽฎ Interactive Code Playground

The site features a professional-grade Interactive Code Playground in the Data & Tech > Web Dev section, providing hands-on learning with the technologies that power Wavgen.ca:

๐Ÿ› ๏ธ Monaco Editor Integration

  • VS Code experience โ€” Full Monaco Editor with syntax highlighting, IntelliSense, and keyboard shortcuts
  • Vertical stack layout โ€” Code editor above, live preview below for intuitive workflow
  • Mobile-optimized design โ€” Natural vertical scrolling with responsive height management
  • Real-time updates โ€” Code changes reflected instantly with 500ms debouncing for performance
  • Flexible sizing โ€” Editor (384px) and preview (min 384px) adapt to content needs

๐ŸŽฏ Four Interactive Modes

1. Tailwind CSS Mode

  • Live HTML preview โ€” Write HTML with Tailwind classes and see instant visual results
  • Real-time rendering โ€” Changes appear immediately in the preview pane
  • Site theme integration โ€” Uses actual Wavgen.ca color scheme (wavgen-purple, wavgen-yellow)
  • Educational examples โ€” Pre-loaded with site-style components and layouts

2. GSAP Animations Mode

  • Live animation testing โ€” Write GSAP code and watch animations execute in real-time
  • Target element provided โ€” Interactive demo element for immediate visual feedback
  • Safe execution environment โ€” Proper error handling and animation cleanup
  • Performance optimized โ€” Efficient GSAP integration with proper memory management

3. Eleventy Templates Mode

  • Nunjucks syntax exploration โ€” Learn template syntax with comprehensive examples
  • Educational preview โ€” Dark theme code display with syntax explanations
  • Template features showcase โ€” Variables, loops, conditionals, and filters demonstrated
  • Real site examples โ€” Actual template patterns used throughout Wavgen.ca

4. Site Code Snippets Mode

  • Live carousel demo โ€” Working infinite marquee with sample images
  • Real site code โ€” Actual carousel implementation from Wavgen.ca gallery system
  • Interactive demonstration โ€” See the code execute and create visual effects
  • Modifiable examples โ€” Change speed, add animations, experiment with GSAP

๐ŸŽจ Educational Features

  • Comprehensive commenting โ€” Every function and feature documented for learning
  • Progressive complexity โ€” From basic Tailwind to advanced GSAP animations
  • Visual feedback โ€” Immediate results help understand code impact
  • Professional tools โ€” Same editor used by developers worldwide
  • Error handling โ€” Helpful error messages and graceful degradation

๐Ÿ“ Playground Files

  • /js/code-playground.js โ€” Main playground system with Monaco Editor integration (1000+ lines of commented code)
  • /data/webdev/index.njk โ€” Playground container and feature highlights
  • Monaco Editor CDN โ€” Professional code editor loaded dynamically
  • GSAP integration โ€” Live animation testing with site's GSAP library

๐ŸŽจ GSAP-Powered Gallery System

The site features a sophisticated, fully-commented gallery system built with GSAP animations:

๐Ÿ–ผ๏ธ Hero Slideshow

  • Auto-cycling slideshow of featured images with smooth GSAP fade transitions
  • Hover-to-pause functionality for user control
  • Click-to-modal integration for fullscreen viewing
  • Aspect ratio preservation using CSS object-contain and aspect-ratio: 4/3
  • 3-second intervals with power2.inOut easing for professional feel

๐ŸŒŸ Hero Background Slideshow

  • Full-section background slideshow covering the entire hero area with dramatic visual impact
  • Dual slideshow system โ€” independent hero section background + hero card background
  • High-resolution image cycling from dedicated backgrounds collection (7 optimized JPEG images)
  • Smart opacity management โ€” 40% for section background, 100% for card background
  • Enhanced text readability with strengthened overlay (bg-black/40, shadow-xl, border)
  • Performance optimized for GitHub Pages with ~100KB images and efficient loading
  • Crystal clear presentation with blur effects removed for sharp, vibrant visuals
  • Staggered timing โ€” 4-second intervals for section, 3-second for card to create visual variety

๐ŸŽ  Infinite Marquee Carousel

  • Seamless infinite scroll using GSAP linear animation at 60px/second
  • Dynamic image duplication ensures smooth looping regardless of image count
  • Responsive design adapts to container width with proper image sizing
  • Click-to-modal integration for any carousel image
  • Visual hierarchy with yellow container border and purple image borders

๐Ÿ” Unified Modal Gallery

  • Fullscreen viewing for all gallery images (slideshow + marquee)
  • GSAP fade/scale animations for smooth modal transitions
  • Navigation controls with next/previous buttons and keyboard support
  • Multiple close methods โ€” close button, Escape key, click outside
  • Optimized sizing โ€” modal images limited to 50vh height, 60vw width for better navigation
  • Smart indexing excludes cloned marquee images from navigation

๐ŸŽฏ Key Features

  • Comprehensive commenting โ€” every animation and interaction documented
  • Responsive design โ€” works seamlessly across all device sizes
  • Performance optimized โ€” efficient GSAP animations with proper cleanup
  • Accessibility focused โ€” keyboard controls and screen reader friendly
  • Cross-page consistency โ€” replicated across index and all art section pages

๐Ÿ“ Gallery Files

  • /js/gallery.js โ€” Main gallery system with detailed comments (includes hero background slideshow)
  • /js/gsap/ โ€” GSAP core library and plugins
  • /src/images/images/textures/ โ€” Source images for carousel
  • /src/images/images/backgrounds/ โ€” High-resolution background images for hero slideshow
  • Template integration โ€” Hero slideshow, background slideshow, and marquee markup in page templates
  • Eleventy collections โ€” collections.backgrounds and collections.textures for dynamic image loading

๐Ÿ“š Code Commenting & Teaching Philosophy

This repo is a model for code clarity:

  • Every meaningful line is commented in its native style (see CODEBASE_COMMENTING_SUMMARY.md).
  • Teaching blocks at the top of each file explain structure and intent.
  • Repeated sections are commented once in detail, with notes for analogous code.
  • GSAP gallery system โ€” extensively documented with animation explanations, event handling, and integration notes.
  • No code execution impact โ€” comments are safe for production.

๐ŸŒ Explore & Connect


โญ Explore My Curated Starred Repositories

Looking for inspiration, advanced code, or the best in open-source creative technology? Check out my extensively curated and thoughtfully starred repositories:

Explore My Starred Repos

My GitHub Stars are a handpicked collection of groundbreaking, innovative, and useful projects spanning creative coding, generative art, AI/ML, data science, web development, and more. Dive in to discover tools, libraries, and ideas that have shaped my work and can inspire yours.


๐Ÿง  About the Author

Rob McDonald is a creative technologist, musician, and artist based in Toronto, Canada. With a background spanning lithography, generative art, quantum/cloud computing, and decades of web innovation, Rob brings a unique blend of technical mastery and creative vision. This project is both a portfolio and a public learning lab.


โ€œHereโ€™s to the adventure of exploring the possibilities together.โ€


Star, fork, or follow to join the journey! Rob McDonald 2025

About

Welcome to the repository for my website wavgen.ca where I will be exploring coding using AI assistance and GitHub repository resources

Topics

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages