Add 'Your First Project' tutorial#4809
Merged
shannonbradshaw merged 64 commits intoviamrobotics:mainfrom Feb 2, 2026
Merged
Conversation
A comprehensive hands-on tutorial that guides users through building a complete Viam application using a simulated can inspection scenario: - Part 1: Vision Pipeline - camera, ML model, and vision service setup - Part 2: Data Capture - automatic recording and cloud sync - Part 3: Build the Inspector - custom module development in Go - Part 4: Deploy as a Module - packaging and deployment - Part 5: Scale - fragments for fleet management - Part 6: Productize - customer dashboard and white-label auth Includes Gazebo Harmonic simulation setup guide as prerequisite. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
✅ Deploy Preview for viam-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
- Remove detailed hardware table (already covered elsewhere) - Condense intro text - Remove simulation requirements section (covered in gazebo-setup) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Parts 1-3: ~15 min each - Parts 4-6: ~10 min each Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use ### subheadings for sub-steps (clearer visual hierarchy) - Split section 1.5 into 1.5 (ML Model Service) and 1.6 (Vision Service) - Move conceptual explanations into expandable sections - Add checkpoint after camera setup (1.4) - Add preview list at start of ML section - Update _index.md outline to match new structure Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update repo URL to viamrobotics/can-inspection-simulation - Simplify credentials setup to use Machine cloud credentials copy - Fix volume mount paths to use $(pwd) for reliable path resolution - Add Windows port checking commands in troubleshooting - Fix log message to match actual container output - Use consistent "Live" terminology for machine status Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Renumber Part 1 sections after merging steps 1 and 2 - Update _index.md outline to match new section numbers - Rename Part 4 from "Deploy as a Module" to "Deploy a Module" - Add networking bullet point to viam-server description Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add new section 1.2 "Locate Your Machine Part" to Part 1 - Renumber subsequent sections in Part 1 - Update _index.md outline to match - Fix bare URL in gazebo-setup.md (MD034) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update Part 5 section links in _index.md to match actual headings - Use code formatting for localhost URL to avoid HTTPS check Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove spaces around em dashes in part-4 - Replace "via" with "through" in part-3 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix double auxiliary "we've have" → "we've" - Fix double article "the the" → "the" - Fix incomplete sentence in vision service config - Fix typos: Atributes, can-classifer - Fix service name reference (can-classifier → can-model) - Standardize: VM, ID capitalization - Add missing comma - Update screenshot caption to match "Live" status - Change checkpoint alerts to success color Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Convert bold checkpoint to success alert - Remove spaces around em dashes (Vale style) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Purpose info alert explaining why data capture matters - Update Goal statement in part-1 for clarity - Fix list numbering in part-2 (via Prettier) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change can-model to model-service - Change can-classifier to vision-service - Change can-detector to vision-service Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add data service step in part-2 - Rephrase to avoid em dashes for Vale compliance Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add complete steps for creating data service - Simplify vision service data capture steps Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix Vale write-good.So: reword "So far" to "Up to this point" - Fix htmltest: change localhost URL from link to inline code - Change "blemished" to "defective" throughout tutorial Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add detailed explanations for each viam module generate prompt - Update file structure to match actual generated files (module.go not inspector.go) - Add namespace setup instructions before module generation - Expand file table with all generated files and accurate descriptions - Change "Viam user interface" to "Viam app" throughout tutorial Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Split into Step 1 (connect) and Step 2 (access camera) - Show only realMain function and imports to replace - Add go mod tidy step for camera dependencies - Add gofmt note for indentation - Fix camera API: use Images() instead of deprecated Image() - Update expected output to reflect WebRTC diagnostics - Each step is now independently testable Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update _index.md link to match renamed section anchor (viamrobotics#31-generate-the-module-scaffold → viamrobotics#31-generate-the-module-scaffolding) - Replace "e.g." with "for example" per Viam style guide Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Restructure section 3.3 into 5 incremental steps following viam-chess patterns - Adopt DoCommand pattern instead of exported interface - Remove motor/rejector sections (3.4, 3.5) to focus on core concepts - Remove redundant DoCommand section from Part 4 - Fix viam module upload command syntax (add --upload flag) - Fix SQL query to use data.label instead of LIKE on JSON - Update section numbering and index throughout Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Part 4 changes: - Split into 4.2 Build/Upload and 4.3 Add Module sections - Fix cross-compilation instructions with CGO_ENABLED=0 and -tags no_cgo - Add depends_on configuration step for data manager - Add test step using DoCommand in Configure tab - Fix SQL queries to match actual data structure - Update version to 0.0.1 - Clarify model terminology with info box Parts 1 and 2: - Add tips about exploring JSON configuration view - Prepare readers for JSON editing in Part 4 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Part 4: - Add JSON data structure showing captured detection format - Add MQL query example for counting failures by hour - Reference Part 6 for dashboard widgets Part 6: - Rewrite to focus on Teleop dashboard (removed white-label auth, billing) - Add camera stream widget configuration - Add defects per minute widget with custom MQL pipeline - Add confidence trend widget with custom MQL pipeline - Include step-by-step MQL stage instructions with copy-paste JSON - Add info boxes explaining how pipelines work Index: - Update Part 6 outline and time estimate (~15 min) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Part 5 is now Productize (Teleop dashboard) and Part 6 is now Scale (fragments). This order makes more sense as users can see their dashboard working before scaling to multiple machines. - Update section numbers in both files - Update table and outline in _index.md - Fix cross-references in part-4.md - Move Congratulations section to end of Part 6 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Rewrite sentence to avoid em dash before inline code, which vale incorrectly flags as having whitespace. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add prettier-ignore comment to prevent incorrect indentation of Hugo shortcode closing tag. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The tutorial now ends at Part 5 (Productize) with the Teleop dashboard. Scaling with fragments can be covered in a separate dedicated tutorial. - Remove part-6.md - Update _index.md to remove Part 6 references - Add Congratulations section to part-5.md - Update scenario list and time estimate Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Prevents 404 errors for any existing links to the removed Part 6. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Part 2: Main navigation menu (Fleet/Data/Registry) - Part 3: Organization namespace settings - Part 4: DoCommand test result, Data Query interface - Part 5: Teleop workspace creation, finished dashboard Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Gazebo: simulation viewer showing both camera views - Part 1: machine Live status, vision service test with detection - Remove 6 unnecessary screenshot placeholders from Part 1 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Images must be in assets/tutorials/ and use {{<imgproc>}} shortcode
for Hugo to find them correctly.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Screenshots added: - Part 2: Data tab with captured images - Part 3: Org settings dropdown, machine address - Part 4: DoCommand test result, Data Query interface - Part 5: Teleop workspaces page Also fixed numbered list indentation in Part 4 so code blocks don't break list numbering. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added class="imgzoom shadow" to all 10 tutorial screenshots - Added final dashboard screenshot showing completed workspace Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
🔎💬 Inkeep AI search and chat service is syncing content for source 'Viam Docs' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Test plan
🤖 Generated with Claude Code