Skip to content

Add Jarvis HUD mascot#1

Merged
graycyrus merged 3 commits into
tinyhumansai:mainfrom
NeelMistry113:add-jarvis-mascot
Jul 3, 2026
Merged

Add Jarvis HUD mascot#1
graycyrus merged 3 commits into
tinyhumansai:mainfrom
NeelMistry113:add-jarvis-mascot

Conversation

@NeelMistry113

@NeelMistry113 NeelMistry113 commented Jul 1, 2026

Copy link
Copy Markdown

New Mascot: Jarvis

A sci-fi HUD ring mascot inspired by J.A.R.V.I.S., built in Rive Early Access 0.8.4917.

State Machine: JarvisSM

animState Animation
0 JarvisRotate (idle spinning ring)
1 listening
2 talking

Integration

  • ViewModel: ViewModel1
  • Property: animState (number)
  • State Machine: JarvisSM

Set animState on the ViewModel instance to switch between states at runtime.

Status

Marked draft — open to feedback on aligning with the OpenHuman runtime contract.

Summary by CodeRabbit

  • New Features
    • Added a new “Jarvis” mascot configuration as a draft, with sci-fi HUD-style metadata and a state setup for idle and listening/thinking behavior.
    • Introduced an idle pose cycle and connected the mascot to its runtime animation assets.

Sci-fi ring HUD mascot with JarvisSM state machine:
- idle: JarvisRotate (animState=0)
- listening: listening animation (animState=1)
- talking: talking animation (animState=2)

Controlled via ViewModel1.animState number property.
Status: draft

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Added a new mascots/jarvis/mascot.json file that defines the jarvis mascot’s draft metadata, state engine, idle pose cycle, and runtime/source asset registration.

Changes

Jarvis Mascot Config

Layer / File(s) Summary
Mascot configuration definition
mascots/jarvis/mascot.json
Defines the jarvis mascot with draft metadata, sci-fi tags, viseme codes, idle and thinking state mappings, an idlePoseCycle, and registration of jarvis.riv and jarvis.rev assets.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Poem

I hopped in to say, “Jarvis is here!”
With idle and thinking, all crisp and clear.
A rotate for rest, a glow to delight,
Two assets now tucked in just right.
This bunny approves with a twitch of the nose 🐇

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding the new Jarvis HUD mascot.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@mascots/jarvis/mascot.json`:
- Around line 31-36: The Jarvis mascot manifest entry in mascot.json is
incomplete: the runtime file object under files[] needs the required fields url,
sha256, and bytes in addition to role and path. Also add at least one files[]
item with role set to source that points to the .rev source asset so the
manifest satisfies both the schema and the manifest test.
- Around line 7-30: Update the mascot `stateEngine` object in `mascot.json` to
match `schemas/mascots.schema.json` and the manifest test expectations: add the
required `visemeCodes` array, remove the unsupported `viewModel` property, and
replace the extra `states.listening`/`states.talking` entries with the required
`states.idle` and `states.thinking` keys. Make sure the `stateEngine` and nested
`states` objects only contain properties allowed by the schema, and keep
`idlePoseCycle` valid with the expected idle animation reference.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f43544a4-465c-4c44-b241-c41554caeb3d

📥 Commits

Reviewing files that changed from the base of the PR and between 7ec9ea5 and d56d363.

📒 Files selected for processing (2)
  • mascots/jarvis/jarvis.riv
  • mascots/jarvis/mascot.json

Comment thread mascots/jarvis/mascot.json
Comment thread mascots/jarvis/mascot.json
Neel Mistry and others added 2 commits July 1, 2026 17:56
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add required visemeCodes array (standard 15-phoneme set)
- Replace states.listening/talking with required states.thinking
- Remove viewModel (not permitted by schema additionalProperties:false)
- Add source file entry for jarvis.rev

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
mascots/jarvis/mascot.json (1)

17-26: 🗄️ Data Integrity & Integration | 🔴 Critical | ⚡ Quick win

files[] entries still missing required url, sha256, bytes fields.

The .rev source entry was added, but per the schema (schemas/mascots.schema.json), every files[] entry requires role, path, url, sha256, and bytes with additionalProperties: false. Both entries here only supply role and path, so this manifest will still fail schema validation.

🛠️ Proposed fix
   "files": [
     {
       "role": "runtime",
-      "path": "jarvis.riv"
+      "path": "jarvis.riv",
+      "url": "https://.../jarvis.riv",
+      "sha256": "<sha256 hash>",
+      "bytes": 0
     },
     {
       "role": "source",
-      "path": "jarvis.rev"
+      "path": "jarvis.rev",
+      "url": "https://.../jarvis.rev",
+      "sha256": "<sha256 hash>",
+      "bytes": 0
     }
   ]
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@mascots/jarvis/mascot.json` around lines 17 - 26, The mascot manifest files[]
entries are incomplete and will fail schema validation because each item in the
files array must include url, sha256, and bytes in addition to role and path.
Update the jarvis mascot manifest so both the runtime and source entries in the
files array provide all required fields and do not add any extra properties,
matching the structure enforced by mascots.schema.json.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@mascots/jarvis/mascot.json`:
- Around line 17-26: The mascot manifest files[] entries are incomplete and will
fail schema validation because each item in the files array must include url,
sha256, and bytes in addition to role and path. Update the jarvis mascot
manifest so both the runtime and source entries in the files array provide all
required fields and do not add any extra properties, matching the structure
enforced by mascots.schema.json.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d2d8fb49-b141-42e3-b7d4-04390e170048

📥 Commits

Reviewing files that changed from the base of the PR and between d56d363 and 746bf03.

⛔ Files ignored due to path filters (1)
  • dist/mascots.json is excluded by !**/dist/**
📒 Files selected for processing (2)
  • mascots/jarvis/jarvis.rev
  • mascots/jarvis/mascot.json

@NeelMistry113

Copy link
Copy Markdown
Author

Hey @senamakel — all actual tests are passing on this PR. Could you take a look and approve/merge when you get a chance?

The remaining CodeRabbit flag (url, sha256, bytes missing from files[]) is a false positive — those fields are auto-generated by scripts/build-manifest.mjs at build time and are not stored in source mascot.json files. The existing tiny-mascot follows the same pattern.

Tests passing locally:

  • npm run build — manifest built with 3 mascots
  • test:pairs — .riv/.rev pairs validated
  • test:manifest — manifest validated with 3 mascots
  • test:state-engine — state engine validated

Thanks!

@graycyrus graycyrus merged commit f0da0d3 into tinyhumansai:main Jul 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants