- Enhanced CIFAR-10 CNN with BatchNorm2d for stable training
- Added RandomHorizontalFlip and RandomCrop augmentation transforms
- Improved training accuracy from 65%+ to 70%+ with modern architecture
- Updated demo tapes with opening comments for clarity
- Regenerated welcome GIF, removed outdated demo GIFs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Typography refinements:
- Add extra space between TORCH letters for better readability
- Improve breathing room in R, C, and H letter forms
- Adjust flame positioning to match wider letter spacing
- Align tagline with updated TORCH width
The wider spacing gives each letter more presence and makes
the logo feel less cramped on narrow terminal windows.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Typography refinements:
- Move flames 1 space closer to T and H for better visual cohesion
- Make tagline bold to match flame glow intensity
- Use TAGLINE_COLOR constant for consistency
These micro-adjustments make the logo feel crafted rather than
assembled, with each element belonging to a unified whole.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
All demos now:
- Start with opening comment explaining what will be shown
- Show cd and source activate.sh commands to users
- Use custom TinyTorch theme colors
- Only hide fast-forward module completions (Demo 03)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added fourth section with essential help commands:
- tito system doctor (check environment health)
- tito --help (see all commands)
Completes welcome screen simplification with 4 focused groups
showing 10 total commands for new users.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added proper spacing (8 spaces) to align the tagline
'🔥 Don't just import it. Build it.' directly under the TORCH letters.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Key changes:
- SHOW cd and source activate.sh in all demos (users see full setup)
- ONLY use Hide for Demo 03's module 01-06 completions (fast-forward)
- Remove unnecessary clear command
- Add module reset to demo script for clean slate
This ensures users see the real workflow while keeping demos concise.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Separate required vs optional dependencies in health checks:
Required (from requirements.txt):
- NumPy, Rich, PyYAML, Pytest, Jupytext
Optional (nice to have):
- JupyterLab, Matplotlib
Now health check shows:
- Required deps as ✅ OK or ❌ Missing
- Optional deps as ✅ Installed or ○ Not installed (dim, not alarming)
This prevents students from thinking they have issues when
optional tools like JupyterLab aren't installed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Moved Show command to appear after source activate.sh completes,
so the first visible frame shows the activation finishing instead
of an empty prompt. This makes the recording flow more natural.
Changes:
- cd command stays hidden
- source activate.sh runs inside Hide block
- Show appears after activation completes
- First frame now shows activation output
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Dramatically simplified the welcome screen to show only essential info:
- Quick Start (3 commands)
- Track Progress (2 commands)
- Community (1 command)
Removed redundant commands:
- leaderboard -> merged into community
- olympics -> merged into community
These backend-dependent features are consolidated into a single
community command that will handle all social features when the
backend is ready.
Changes:
- Simplified welcome screen (10 lines vs 40+ lines)
- Moved leaderboard.py and olympics.py to _archived/
- Updated all tests (45 passing)
- Cleaner --help output
- Updated archived README
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Replaced tito book and tito demo commands with simple shell scripts:
- scripts/build-book.sh - Build Jupyter Book (with optional browser open)
- scripts/build-docs.sh - Build full website docs (book + static assets)
Easier for developers to run directly without CLI overhead.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Replaced Catppuccin Mocha with custom TinyTorch theme matching
our brand colors:
- Dark background (#1E1E2E) for modern look
- Pastel colors (pink, green, yellow, blue, magenta, cyan)
- Consistent with TinyTorch's fire/torch aesthetic
All demos now have unified, branded color scheme!
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added the same professional styling to Demo 00 (Welcome) that
the other demos have:
- Margin 20px
- MarginFill #1E1E2E
- BorderRadius 10px
- LoopOffset 10%
Now all demos have consistent polished styling!
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Moved Set WindowBar Colorful to top of all tapes (required by VHS)
- Demo 03: Changed to properly complete modules 01-06 (not just export)
- Uses Hide/Show pattern to complete modules 01-06 in background
- Then shows module status to prove modules are completed
- This ensures milestone 03 prerequisites are met
All tapes now follow VHS best practices!
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Students can run demos directly with Python, and developers can
run jupyter-book directly. The CLI wrappers don't add value.
Changes:
- Move demo.py and book.py to _archived/
- Remove from main.py command registry
- Remove from __init__.py imports
- Update test expectations (47 tests passing)
- Update archived README with removal rationale
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Silent return when autograd is already enabled
- Cleaner REPL experience without redundant warnings
- First import still shows helpful ✅ message
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed community join from anonymous UUID-based to GitHub-authenticated
profile creation with minimal CLI questions and web completion.
Changes:
- Ask only 3 questions: GitHub username (required), country, institution
- GitHub username is the authentication anchor (no more anonymous UUIDs)
- Auto-detect country when possible
- Open browser to tinytorch.ai/community/join with pre-filled params
- Store minimal profile locally (.tinytorch/community.json)
- Full profile completion happens on website (OAuth, bio, social links)
- Updated command description to be clearer
Benefits:
- Faster CLI experience (3 questions max vs 5+)
- GitHub username = single source of truth
- Better UX for complex forms (website has rich UI)
- OAuth authentication built-in
- Profile sync possible via API later
Local storage format:
{
"github_username": "studentX",
"joined_at": "2025-11-29T...",
"country": "USA",
"institution": "MIT",
"profile_url": "https://tinytorch.ai/community/studentX",
"last_synced": null
}
Tests: 49/49 passing ✅🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
All demos have been regenerated with:
- Fixed cd to TinyTorch directory
- Working module complete command (after fixing import bug)
- Verified Python imports work correctly
- Consistent @profvjreddi 🔥 › prompt
All commands tested and verified before recording.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed import from `.src` to `..src` since SrcCommand is in
tito/commands/src.py not tito/commands/module/src.py
This fixes the "No module named 'tito.commands.module.src'" error
when running `tito module complete`.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed Demo 00 to properly cd into TinyTorch directory before
activating environment. The demo now works correctly and shows
the full tito welcome screen at 1280x1000 dimensions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The checkpoint command tracked 21 technical capability checkpoints, but
this overlapped significantly with the milestones system which provides
a more engaging, narrative-driven progress tracking experience.
Changes:
- Removed checkpoint command and test files
- Updated milestone.py to remove checkpoint dependencies
- Removed checkpoint integration from export.py, src.py, leaderboard.py
- Updated CLI help text to reference milestones instead
- Updated test suite (49/49 tests passing)
- Archived checkpoint.py for reference
Rationale:
- Milestones is more engaging (historical ML achievements)
- Module status already shows granular progress
- Reduces duplication and confusion
- Single clear progress tracking system
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
All VHS tapes now include a hidden `cd /Users/VJ/GitHub/TinyTorch`
command before activating the environment. This ensures the demos
work regardless of where VHS is run from.
Updated demos:
- 00-welcome: Fixed and regenerated (259K)
- 02-build-test-ship: Added cd command
- 03-milestone-unlocked: Added cd command
- 04-share-journey: Added cd command
All tapes now work reliably!
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed height from 720 to 1000 pixels so the entire tito welcome
screen is visible without scrolling. The full command reference is
now readable in the GIF.
Bonus: File size reduced from 170K to 51K due to better aspect ratio.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Improved demo file organization:
- Created docs/_static/demos/gifs/ for all GIF outputs
- Updated all tape files to output to gifs/ folder
- Moved all existing GIFs to new location
Directory structure:
docs/_static/demos/
├── gifs/ (all GIF outputs)
├── tapes/ (all VHS tape scripts)
├── scripts/ (helper scripts)
├── README.md
└── WORKFLOW.md
This makes the demos directory much cleaner and easier to navigate.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed welcome demo to use Hide/Show to skip the environment
activation step. Now the GIF starts directly with 'tito' appearing,
making it cleaner and more focused on the beautiful logo and
command reference.
Perfect first impression - just the branding!
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Created a simple, impactful demo that shows:
- The beautiful ASCII TORCH logo
- The "Don't just import it. Build it." tagline
- Complete command reference organized by category
- Quick start guide
Perfect for:
- Social media posts
- README hero image
- First impression for new students
Demo 00 (Welcome): 1.5M
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Updated all demo tapes (02, 03, 04) to:
- Use consistent prompt: "@profvjreddi 🔥 › "
- Add "source activate.sh" at beginning to ensure tito is available
- This makes demos work when starting from a fresh terminal
Regenerated GIFs:
- Demo 02 (Build, Test, Ship): 3.2M (was 699K - now includes activation)
- Demo 03 (Milestone Unlocked): 273K (was 143K - now includes activation)
- Demo 04 (Share Journey): TBD
All demos now show the proper branded prompt throughout.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove hardcoded command list in welcome screen
- Dynamically build help from self.commands registry
- Categorize commands: Essential, Student Workflow, Community, Developer, Shortcuts
- Ensures welcome screen always shows only registered commands
- No more stale command references
Benefits:
- Single source of truth (commands registry)
- Adding/removing commands automatically updates welcome
- Clear categorization for different user roles
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove module from started_modules when marking complete
- Add validation to prevent completing modules out of order
- Show all modules in status (removed smart collapsing)
- Fix data integrity: modules must be completed sequentially
Prevents invalid states where module N is complete but N-1 is not.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Removed old GIF files from root directory. The new GIFs are now properly
located in docs/_static/demos/ directory.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Reorganize TinyTorch CLI from flat structure to hierarchical organization
with subfolders for complex commands with subcommands.
Changes:
- Create subfolders: module/, system/, package/
- Move module commands: module_workflow.py → module/workflow.py
- Move module_reset.py → module/reset.py
- Move system commands: system.py → system/system.py
- Move system subcommands: info.py, health.py, jupyter.py → system/
- Move package commands: package.py → package/package.py
- Move package helpers: reset.py, nbdev.py → package/
- Archive deprecated files: clean.py, help.py, notebooks.py, status.py
- Update all imports in moved files and main.py
- Add __init__.py exports for each subfolder
- Create comprehensive CLI test suite (52 tests)
- test_cli_registry.py: Validate command registration
- test_cli_execution.py: Smoke tests for all commands
- test_cli_help_consistency.py: Help text validation
- Update tests to match new structure
Benefits:
- Clear ownership: Easy to see which helpers belong to which commands
- Better organization: Related files grouped together
- Scales cleanly: Adding subcommands is straightforward
- Zero user impact: All commands work exactly the same
All 52 tests passing ✅🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update tagline across all commands to 'Don't just import it. Build it.'
- Rename milestone command to milestones for better consistency
- Remove duplicate milestones.py file
- Add auto-install of tito CLI in activate.sh
- Add command metadata structure to BaseCommand
- Clean up command registration with single source of truth
Clean /tmp/TinyTorch before EACH GIF generation, not just once at the start.
VHS executes real commands and captures actual output, so if /tmp/TinyTorch exists from a previous GIF, the git clone will fail with 'already exists' error.
Now each GIF gets a clean environment:
🧹 Cleaning /tmp/TinyTorch for this GIF...
This ensures GIF 01 shows successful clone on every generation.
Fixed GIFs 02, 03, and 04 to activate the environment before running tito commands.
Without activation, tito commands fail with 'command not found' error.
Each GIF now starts with:
Type "source activate.sh"
Sleep 300ms
Enter
Sleep 1s
This ensures tito is available in PATH before any tito commands execute.
GIF 01 already had activation as part of the setup workflow demo.
Test script now measures actual execution time for every command using Python's time.time(), outputting recommendations to /tmp/tinytorch_timing.txt.
Measured timings:
- git clone: 3s (varies by network, using safe 3s)
- setup-environment.sh: 9s (measured 8.6s)
- tito system health: 0.5s (show for 3s for readability)
- tito module status: 0.2s (show for 3s)
- tito logo: 0.1s (show for 6s)
Updated 01-zero-to-ready.tape with measured delays to ensure:
- GIF shows actual command completion
- No typing ahead before previous command finishes
- Realistic demo of student experience
This fixes the issue where VHS would type commands faster than they execute.