Image to Three.js Model
img2threejs/img2threejs
Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.
Look up Roku's official BrightScript/SceneGraph spec in the external/dev-doc submodule (docs/REFERENCES/) when implementing, fixing, or verifying an interpreter feature — components (roXxx)…
$ npx skills add lvcabral/brs-engine --skill brs-reference -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install lvcabral/brs-engine brs-reference --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/lvcabral/brs-engine.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/brs-reference .claude/skills/brs-reference && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "brs-reference" agent skill from https://github.com/lvcabral/brs-engine/tree/master/.agents/skills/brs-reference into .claude/skills/brs-reference/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brs-reference", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/lvcabral/brs-engine/tree/master/.agents/skills/brs-referenceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add lvcabral/brs-engine --skill brs-reference -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install lvcabral/brs-engine brs-reference --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lvcabral/brs-engine.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/brs-reference .agents/skills/brs-reference && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "brs-reference" agent skill from https://github.com/lvcabral/brs-engine/tree/master/.agents/skills/brs-reference into .agents/skills/brs-reference/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brs-reference", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lvcabral/brs-engine --skill brs-reference -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install lvcabral/brs-engine brs-reference --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lvcabral/brs-engine.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/brs-reference .cursor/skills/brs-reference && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "brs-reference" agent skill from https://github.com/lvcabral/brs-engine/tree/master/.agents/skills/brs-reference into .cursor/skills/brs-reference/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brs-reference", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/lvcabral/brs-engine.git --path .agents/skills/brs-reference--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add lvcabral/brs-engine --skill brs-reference -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install lvcabral/brs-engine brs-reference --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lvcabral/brs-engine.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/brs-reference .gemini/skills/brs-reference && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "brs-reference" agent skill from https://github.com/lvcabral/brs-engine/tree/master/.agents/skills/brs-reference into .gemini/skills/brs-reference/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brs-reference", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install lvcabral/brs-engine brs-referenceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add lvcabral/brs-engine --skill brs-reference -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/lvcabral/brs-engine.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/brs-reference .github/skills/brs-reference && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "brs-reference" agent skill from https://github.com/lvcabral/brs-engine/tree/master/.agents/skills/brs-reference into .github/skills/brs-reference/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brs-reference", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lvcabral/brs-engine --skill brs-reference -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install lvcabral/brs-engine brs-reference --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lvcabral/brs-engine.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/brs-reference .opencode/skills/brs-reference && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "brs-reference" agent skill from https://github.com/lvcabral/brs-engine/tree/master/.agents/skills/brs-reference into .opencode/skills/brs-reference/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brs-reference", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
brs-referenceLook up Roku's official BrightScript/SceneGraph spec in the external/dev-doc submodule (docs/REFERENCES/) when implementing, fixing, or verifying an interpreter feature — components (roXxx)…
Brs Reference is an agent skill from lvcabral/brs-engine. Look up Roku's official BrightScript/SceneGraph spec in the external/dev-doc submodule (docs/REFERENCES/) when implementing, fixing, or verifying an interpreter feature — components (roXxx), interfaces (ifXxx), events, SceneGraph nodes, global functions, or language behavior. Use it to confirm exact method signatures, node field names/types/defaults/access, and event semantics so simulated behavior matches a real Roku device.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Game Development. The repository describes itself as: BrightScript Simulation Engine - Run Roku apps on Browsers and Node.js. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5454545. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comdeveloper.roku.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Brs Reference loads about 1.9k tokens when it runs. Until then it costs about 111 tokens; SKILL.md has 797 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from lvcabral/brs-engine at commit 5454545, republished under its MIT licence (© lvcabral). 797 words, ~1,937 tokens.
.claude/skills/brs-reference/SKILL.md (or your agent's skills folder).Roku's official, open-sourced BrightScript + SceneGraph reference docs are vendored as
a git submodule (rokudev/dev-doc, branch v2.0) at
external/dev-doc. The reference pages live under external/dev-doc/docs/REFERENCES/
(Markdown with YAML frontmatter). They are the authoritative spec for what the behavior
should be — the brs-engine code is how we simulate it. Reach for this skill whenever a
task involves a missing, incomplete, or wrong-looking BrightScript/SceneGraph feature, and
before claiming a feature "matches Roku."
In this skill $REF means external/dev-doc/docs/REFERENCES.
The submodule must be initialized: if
$REFis empty/missing, rungit submodule update --init external/dev-doc. It is reference only — never make build/runtime code depend on it. If it still can't be fetched, say so and fall back to https://developer.roku.com/docs/references/ (or skip the lookup).
roXxx component / ifXxx interface method.All paths below are relative to $REF (= external/dev-doc/docs/REFERENCES).
| Reference glob | Topic | Source to edit |
|---|---|---|
$REF/brightscript/components/roXxx.md | Component overview + supported interfaces/events | src/core/brsTypes/components/RoXxx.ts (register in BrsObjects.ts) |
$REF/brightscript/interfaces/ifXxx.md | Method signatures, args, returns, defaults | methods on the component, grouped under the ifXxx key in registerMethods — not a standalone type (see "Interfaces are method grouping" below) |
$REF/brightscript/events/roXxxEvent.md | Event objects from roMessagePort | the matching event component |
$REF/brightscript/language/*.md | Statements, types, errors, #if, format strings, reserved words, global functions | src/core/lexer/, parser/, preprocessor/, stdlib/ |
$REF/scenegraph/**/<node>.md | SceneGraph node fields + behavior (by category) | src/extensions/scenegraph/nodes/<Node>.ts |
$REF/scenegraph/xml-elements/*.md, component-functions/*.md | Component XML + init/onKeyEvent | src/extensions/scenegraph/parser/, factory/ |
$REF/deprecated-apis.md | Deprecated APIs — check before relying on one | n/a |
Filenames are lowercase, no spaces (e.g. rovideoplayer.md, ifsgnodefield.md,
renderable-nodes/rectangle.md). Files are Markdown: a YAML frontmatter block
(title, excerpt, …) at the top, ## headings, GitHub-style pipe tables for fields/
methods, fenced or double-backtick code samples, and cross-links written as
[label](doc:slug) (the slug is the target file's basename without .md).
REF=external/dev-doc/docs/REFERENCES
find "$REF/scenegraph" -iname '*<node>*'
find "$REF" -iname '*<name>*'ifXxx interfaces (as [ifXxx](doc:ifxxx)
links) — follow those to the interfaces/ files for the actual method signatures. A node
file's Fields table (Field / Type / Default / Access Permission / Description) is the
spec for the node's fields; note that base-class fields are inherited and documented
separately (the file says "Fields derived from the … base class can also be used").grep -rin "getmessageport" "$REF/brightscript/interfaces/"
grep -rl "itemComponentName" "$REF/scenegraph/"defaultFields entries should
mirror the reference Fields table (e.g. Rectangle's width/height are float
default 0.0, color is color default 0xFFFFFFFF). Field type strings and
default values in code should equal the doc's Type/Default columns.Extends Group, the TS class should
extend the matching base and setExtendsType(name, SGNodeType.Group) — only declare
fields the doc adds beyond the base.ifXxx.md to get the
correct method names, arg order, optional args, and return types — then implement those
methods on the component and register them under the ifXxx key in
registerMethods({ ifXxx: [...] }). Do not create a new ifXxx class just because
the docs list one. See "Interfaces are method grouping" below.deprecated-apis.md) actually agree with the implementation.The reference's ifXxx files describe Roku's interfaces, but this codebase does not
implement one type per interface. Follow the existing pattern:
registerMethods({ ifXxx: [callable, ...] }). The ifXxx key is just a label that
mirrors the docs — there is no ifXxx contract being satisfied.// RoVideoPlayer.ts — methods defined inline, grouped under interface-name keys
this.registerMethods({
ifVideoPlayer: [this.play, this.stop, this.setContentList, /* ... */],
ifHttpAgent: [ifHttpAgent.addHeader, ifHttpAgent.setHeaders, /* ... */],
});src/core/brsTypes/interfaces/ holds only a small, deliberate set of shared helper
classes (IfArray, IfEnum, IfHttpAgent, IfList, IfMessagePort, IfSocket,
IfToStr, IfDraw2D, …) — abstract/shared method bundles that exist purely to reduce
duplication when several components expose the same interface. Instantiate one with the
owning component and spread its callables into registerMethods:const ifArray = new IfArray(this);
this.registerMethods({ ifArray: [ifArray.peek, ifArray.pop, /* ... */] });interfaces/.ifXxx key. Do not add a new file in
interfaces/ just to mirror a documented interface that only one component uses.RoXxx.ts, register it in
src/core/brsTypes/components/BrsObjects.ts.SGNodeType enum in
src/extensions/scenegraph/nodes/index.ts, create nodes/<Node>.ts, and wire it into
SGNodeFactory.createNode's switch in factory/NodeFactory.ts.© lvcabral, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/brs-reference of lvcabral/brs-engine.
Open the folder on GitHubat commit 5454545
Brs Reference next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Brs Reference this skilllvcabral/brs-engine | 137 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Image to Three.js Modelimg2threejs/img2threejs | 18k | 1 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 | |
| Web CloneJane-xiaoer/claude-skill-web-clone | 1k | 1 repos | ~2.7k | Automated safety check: Pass | MIT | |
| Threejs Game Directormajidmanzarpour/threejs-game-skills | 2.5k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Game Asset Generatorhtdt/godogen | 7.1k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Threejs Gameplay Systemsvalkor-ai/loom | 1.2k | 1 repos | ~1.4k | Automated safety check: Pass | Apache-2.0 |
img2threejs/img2threejs
Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.
Jane-xiaoer/claude-skill-web-clone
网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 /…
majidmanzarpour/threejs-game-skills
Entrypoint for building, upgrading, and finishing Three.js browser games.
htdt/godogen
Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.
valkor-ai/loom
Build and iterate playable Three.js game systems: starter scaffold, architecture, design briefs, core loops, level and encounter design, entities, input, camera, collision and physics, scoring…
CyberAgentGameEntertainment/NovaShader
Execute C with Unity APIs when existing uloop tools cannot inspect or edit enough.
Categories
Look up Roku's official BrightScript/SceneGraph spec in the external/dev-doc submodule (docs/REFERENCES/) when implementing, fixing, or verifying an interpreter feature — components (roXxx)…. Brs Reference is an agent skill from lvcabral/brs-engine. Look up Roku's official BrightScript/SceneGraph spec in the external/dev-doc submodule (docs/REFERENCES/) when implementing, fixing, or verifying an interpreter feature — components (roXxx), interfaces (ifXxx), events, SceneGraph nodes, global functions, or language behavior.
Brs Reference fits situations like: confirm exact method signatures; Node field names/types/defaults/access; event semantics so simulated behavior matches a real Roku device.
Run `npx skills add lvcabral/brs-engine --skill brs-reference -a claude-code`. Or copy the skill folder (.agents/skills/brs-reference in lvcabral/brs-engine) into .claude/skills/brs-reference in your project. Claude Code loads it when a task matches its description.
Run `npx skills add lvcabral/brs-engine --skill brs-reference -a codex`. Or copy the skill folder (.agents/skills/brs-reference in lvcabral/brs-engine) into .agents/skills/brs-reference in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add lvcabral/brs-engine --skill brs-reference -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/brs-reference, .gemini/skills/brs-reference, .github/skills/brs-reference and .opencode/skills/brs-reference in your project.
Going by SKILL.md and its folder, Brs Reference needs the command-line tools its instructions call (git).
SKILL.md names 2 domains. As links in the text: github.com and developer.roku.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Brs Reference is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Brs Reference: Image to Three.js Model (img2threejs/img2threejs, 18k stars), Web Clone (Jane-xiaoer/claude-skill-web-clone, 1k stars), Threejs Game Director (majidmanzarpour/threejs-game-skills, 2.5k stars) and Game Asset Generator (htdt/godogen, 7.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
lvcabral (a GitHub user) maintains it in lvcabral/brs-engine, which has 137 GitHub stars. The repository was last updated on October 7, 2026.
Source: lvcabral/brs-engine on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.