Not in the top 1,000 by GitHub stars
AirsupHQ/factory-skill
Describe a factory in one line. Claude builds it as a live 3D simulation you can run. Open source agent skill: real discrete event simulation, tilt-shift miniature.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 9fde7554e6a3
No earlier version was observed for comparison.
Heat
5.3- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- factory
/
How it works
factory
When your agent uses it
Turn a one line description of a factory ("a line that makes 2,000 e-bike motors a day", "a bakery that bakes 10,000 croissants an hour", "a battery cell gigafactory") into a single self-contained HTML page with a live 3D tilt-shift miniature of that factory, driven by a real discrete event simulation (stations, cycle times, batches, finite buffers, shifts, breakdowns, scrap) with a live HUD for throughput against target, takt, utilization, WIP, lead time and the bottleneck, where clicking a station lets you add a machine or change a cycle time and watch the bottleneck move. Use it whenever someone wants to see, size, explain or pitch a production line, plant, assembly line, process or factory, asks "how many machines do I need", "where is the bottleneck", "can this line make N a day", wants a factory simulation or digital twin demo, or describes a product and a volume, even if they never say "simulation".
What it loads into context
Frontmatter
218 tokensAlways available to the agent
SKILL.md
3,790 tokensWhen the skill is activated
Reference documents
6,405 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- The one rule that matters
- Workflow
- Spec
- Kit
- The page
- Look
- Verify like a critic
- Files
Scripts executed separately
examples/battery-gigafactory/spec.jsexamples/brewery-canning/spec.jsexamples/croissant-bakery/spec.jsexamples/drone-line/spec.jsexamples/ebike-motors/spec.jsexamples/satellite-factory/spec.jsruntime/app.jsruntime/des.jsruntime/kit.jsruntime/look.jsruntime/world.jsscripts/build.mjsscripts/capture.mjsscripts/check.mjsscripts/lib.mjsscripts/record.mjsvendor/three.bundle.js
Files
.gitattributesasset76 bytes.github/REPO.mddoc643 bytes.github/assets/battery-gigafactory.jpgasset108,424 bytes.github/assets/brewery-canning.jpgasset102,778 bytes.github/assets/croissant-bakery.jpgasset111,641 bytes.github/assets/drone-line.jpgasset113,248 bytes.github/assets/ebike-motors.jpgasset111,092 bytes.github/assets/hero.gifasset6,292,893 bytes.github/assets/satellite-factory.jpgasset106,015 bytes.github/assets/social.jpgasset113,449 bytes.gitignoreasset65 bytesCHANGELOG.mddoc268 bytesCONTRIBUTING.mddoc787 bytesLAUNCH.mddoc2,038 bytesLICENSEasset1,228 bytesREADME.mddoc9,080 bytesSKILL.mdcore13,945 bytesevals/evals.jsonasset1,506 bytesexamples/battery-gigafactory/battery-gigafactory.htmlasset1,060,718 bytesexamples/battery-gigafactory/spec.jsruns2,746 bytesexamples/brewery-canning/brewery-canning.htmlasset1,060,122 bytesexamples/brewery-canning/spec.jsruns2,142 bytesexamples/croissant-bakery/croissant-bakery.htmlasset1,060,604 bytesexamples/croissant-bakery/spec.jsruns2,629 bytesexamples/drone-line/drone-line.htmlasset1,060,210 bytesexamples/drone-line/spec.jsruns2,253 bytesexamples/ebike-motors/ebike-motors.htmlasset1,061,002 bytesexamples/ebike-motors/spec.jsruns3,019 bytesexamples/satellite-factory/satellite-factory.htmlasset1,060,072 bytesexamples/satellite-factory/spec.jsruns2,100 bytesreferences/des.mddoc2,441 bytesreferences/kit.mddoc2,726 bytesreferences/look.mddoc2,119 bytesreferences/process.mddoc3,204 bytesruntime/app.jsruns20,089 bytesruntime/des.jsruns20,931 bytesruntime/hud.cssasset10,141 bytesruntime/kit.jsruns79,939 bytesruntime/look.jsruns8,192 bytesruntime/world.jsruns47,683 bytesscripts/build.mjsruns2,237 bytesscripts/capture.mjsruns2,321 bytesscripts/check.mjsruns2,957 bytesscripts/lib.mjsruns776 bytesscripts/record.mjsruns3,735 bytesvendor/LICENSE-three.txtdoc1,081 bytesvendor/three.bundle.jsruns870,440 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubSkills included
- factory
Repository facts
- License
- No license detected
- Created
- Oct 12, 2026
- Last pushed
- Oct 12, 2026
- Forks
- 9
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 205 notes
examples/battery-gigafactory/battery-gigafactory.html:1Analysis incomplete: file exceeds text byte budgetexamples/battery-gigafactory/battery-gigafactory.html:122Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:120Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:121Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:126Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:124Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:125Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:3792Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:3790Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:4081Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:4080Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:4127Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:4125Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:4126Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:4162Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:4160Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:4161Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:4178Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:4176Analysis incomplete: physical or joined line exceeds character limitexamples/battery-gigafactory/battery-gigafactory.html:4177Analysis incomplete: physical or joined line exceeds character limit
- No broad tool permissions
- No dangerous shell commands
- 65 network referencesin 11 files: README.md:5 LAUNCH.md:18 examples/battery-gigafactory/battery-gigafactory.html:120 and 8 more
- 18 obfuscation signalsin 1 file: vendor/three.bundle.js:1
- No instruction overrides
- 17 executable scriptsin 17 files: examples/battery-gigafactory/spec.js:1 examples/brewery-canning/spec.js:1 examples/croissant-bakery/spec.js:1 and 14 more
- No access to secrets
- No requests to vote in Hot
Show all 100 signals by file
.github/REPO.md
- Network accessline 8
**Website:** https://www.airsup.ai/lab/factory-skill
LAUNCH.md
- Network accessline 18
cd "~/Documents/Airsup Main/factory-skill" git remote add origin https://github.com/AirsupHQ/factory-skill.git - Network accessline 19
git remote add origin https://github.com/AirsupHQ/factory-skill.git - Network accessline 26
- `npx skills add AirsupHQ/factory-skill -g -a claude-code` installs it (needs Node 22.20 or later for the skills CLI); then `/factory a bakery that bakes 10,000 croissants an hour` in Claude Code. - `git clone https://github.com/AirsupHQ - Network accessline 27
the skills CLI); then `/factory a bakery that bakes 10,000 croissants an hour` in Claude Code. - `git clone https://github.com/AirsupHQ/factory-skill.git ~/.claude/skills/factory` works too. - Open `examples/ebike-motors/ebike-motors.html` - Network accessline 28
- `git clone https://github.com/AirsupHQ/factory-skill.git ~/.claude/skills/factory` works too. - Network accessline 33
Settings, Pages, Deploy from branch `main`, folder `/ (root)`. The examples are then live at `https://pytro001.github.io/factory-skill/examples/ebike-motors/ebike-motors.html`. Not needed: the - Network accessline 34
`https://pytro001.github.io/factory-skill/examples/ebike-motors/ebike-motors.html`. Not needed: the
README.md
- Network accessline 5
<p align="center"> <a href="https://code.claude.com/docs/en/skills"><img src="https://img.shields.io/badge/Claude_Code-skill-24262a?style=flat-square" alt="Claude Code skill"></a> - Network accessline 6
<a href="https://code.claude.com/docs/en/skills"><img src="https://img.shields.io/badge/Claude_Code-skill-24262a?style=flat-square" alt="Claude Code skill"></a> - Network accessline 7
<a href="https://agentskills.io"><img src="https://img.shields.io/badge/Agent_Skills-compatible-24262a?style=flat-square" alt="Agent Skills compatible"></a> - Network accessline 8
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-24262a?style=flat-square" alt="MIT license"></a> - Network accessline 9
<a href="#requirements"><img src="https://img.shields.io/badge/dependencies-0-24262a?style=flat-square" alt="No dependencies"></a> - Network accessline 10
<a href="https://www.airsup.ai/lab/factory-skill"><img src="https://img.shields.io/badge/gallery-airsup.ai%2Flab%2Ffactory--skill-e2713a?style=flat-square" alt="Gallery"></a> - Network accessline 74
All six were made by Claude with this skill, from the prompts above. Open any `examples/*/*.html` in a browser, or try them at [airsup.ai/lab/factory-skill](https://www.airsup.ai/lab/factory-skill). - Network accessline 76
[airsup.ai/lab/factory-skill](https://www.airsup.ai/lab/factory-skill). - Network accessline 84
| skills CLI, for you | `npx skills add AirsupHQ/factory-skill -g -a claude-code` | | skills CLI, one project | `npx skills add AirsupHQ/factory-skill` | | git, for you | `git clone https://github.com/AirsupHQ/factory-skill.git ~/.claude/sk - Network accessline 85
| skills CLI, one project | `npx skills add AirsupHQ/factory-skill` | | git, for you | `git clone https://github.com/AirsupHQ/factory-skill.git ~/.claude/skills/factory` | | git, one project | `git clone https://github.com/AirsupHQ/factory- - Network accessline 86
| git, for you | `git clone https://github.com/AirsupHQ/factory-skill.git ~/.claude/skills/factory` | - Network accessline 87
| git, one project | `git clone https://github.com/AirsupHQ/factory-skill.git .claude/skills/factory` | - Network accessline 94
Factory follows the [Agent Skills](https://agentskills.io) format: a folder with a `SKILL.md` at its - Network accessline 164
Made by [airsup](https://www.airsup.ai), manufacturing simulation for hardware teams. Inspired by - Network accessline 165
[Anatomy](https://github.com/wheresryan22/anatomy), the skill that brings machines to life as
examples/battery-gigafactory/battery-gigafactory.html
- Network accessline 120
</head> <body> <script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROT - Network accessline 121
<body> <script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PA - Network accessline 122
<script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PAN:1,DOL - Network accessline 3823
// GGX VNDF importance sampling (Eric Heitz 2018) // "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ - Network accessline 3824
// "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { - Network accessline 3825
// https://jcgt.org/published/0007/04/01/
examples/battery-gigafactory/spec.js
- Executable scriptline 1
Executable file
examples/brewery-canning/brewery-canning.html
- Network accessline 120
</head> <body> <script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROT - Network accessline 121
<body> <script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PA - Network accessline 122
<script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PAN:1,DOL - Network accessline 3823
// GGX VNDF importance sampling (Eric Heitz 2018) // "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ - Network accessline 3824
// "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { - Network accessline 3825
// https://jcgt.org/published/0007/04/01/
examples/brewery-canning/spec.js
- Executable scriptline 1
Executable file
examples/croissant-bakery/croissant-bakery.html
- Network accessline 120
</head> <body> <script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROT - Network accessline 121
<body> <script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PA - Network accessline 122
<script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PAN:1,DOL - Network accessline 3823
// GGX VNDF importance sampling (Eric Heitz 2018) // "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ - Network accessline 3824
// "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { - Network accessline 3825
// https://jcgt.org/published/0007/04/01/
examples/croissant-bakery/spec.js
- Executable scriptline 1
Executable file - Network accessline 15
{ id: 'mix', name: 'Spiral dough mixers', machine: 'mixer', ct: 660, cv: 0.05, batch: 24, buffer: 60, mtbf: 20 * 3600, mttr: 20 * 60, stage: 'dough', input: 'flour', note: '60 kg dough per batch: 6 min mix, 5 min load and tip' }, { id: - Network accessline 16
{ id: 'laminate', name: 'Laminator', machine: 'rollers', variant: 'laminator', ct: 11.5, cv: 0.03, buffer: 30, mtbf: 8 * 3600, mttr: 15 * 60, stage: 'sheet', length: 6, web: '#f1dfae', note: 'butter sheet folded in, 27 layers' }, { id: - Network accessline 17
{ id: 'makeup', name: 'Cut + curl make-up line', machine: 'rollers', variant: 'slitter', ct: 11, cv: 0.04, buffer: 12, mtbf: 6 * 3600, mttr: 12 * 60, stage: 'raw', length: 5, web: '#f1dfae', note: 'triangles cut and curled, 40 per tray' },
examples/drone-line/drone-line.html
- Network accessline 120
</head> <body> <script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROT - Network accessline 121
<body> <script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PA - Network accessline 122
<script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PAN:1,DOL - Network accessline 3823
// GGX VNDF importance sampling (Eric Heitz 2018) // "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ - Network accessline 3824
// "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { - Network accessline 3825
// https://jcgt.org/published/0007/04/01/
examples/drone-line/spec.js
- Executable scriptline 1
Executable file
examples/ebike-motors/ebike-motors.html
- Network accessline 120
</head> <body> <script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROT - Network accessline 121
<body> <script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PA - Network accessline 122
<script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PAN:1,DOL - Network accessline 3823
// GGX VNDF importance sampling (Eric Heitz 2018) // "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ - Network accessline 3824
// "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { - Network accessline 3825
// https://jcgt.org/published/0007/04/01/
examples/ebike-motors/spec.js
- Executable scriptline 1
Executable file
examples/satellite-factory/satellite-factory.html
- Network accessline 120
</head> <body> <script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROT - Network accessline 121
<body> <script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PA - Network accessline 122
<script>(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PAN:1,DOL - Network accessline 3823
// GGX VNDF importance sampling (Eric Heitz 2018) // "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ - Network accessline 3824
// "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { - Network accessline 3825
// https://jcgt.org/published/0007/04/01/
examples/satellite-factory/spec.js
- Executable scriptline 1
Executable file
runtime/app.js
- Executable scriptline 1
Executable file
runtime/des.js
- Executable scriptline 1
Executable file
runtime/kit.js
- Executable scriptline 1
Executable file
runtime/look.js
- Executable scriptline 1
Executable file
runtime/world.js
- Executable scriptline 1
Executable file
scripts/build.mjs
- Executable scriptline 1
#!/usr/bin/env node
scripts/capture.mjs
- Executable scriptline 1
#!/usr/bin/env node
scripts/check.mjs
- Executable scriptline 1
#!/usr/bin/env node
scripts/lib.mjs
- Executable scriptline 1
Executable file
scripts/record.mjs
- Executable scriptline 1
#!/usr/bin/env node
vendor/three.bundle.js
- Network accessline 1
(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PAN:1,DOLLY_PAN:2 - Possible obfuscationline 1
(function(){var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PAN:1,DOLLY_PAN:2 - Executable scriptline 1
Executable file - Possible obfuscationline 5
}`,Qc=class extends ji{constructor(e){super(),this.isShaderMaterial=!0,this.type=`ShaderMaterial`,this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=Xc,this.fragmentShader=Zc,this.linewidth=1,this.wireframe=!1,this.wi - Possible obfuscationline 3671
}`},$={common:{diffuse:{value:new Y(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new K},alphaMap:{value:null},alphaMapTransform:{value:new K},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransfo - Network accessline 3702
// GGX VNDF importance sampling (Eric Heitz 2018) // "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ - Network accessline 3704
// https://jcgt.org/published/0007/04/01/ - Possible obfuscationline 3960
`},r=new $o(5,5,5),i=new Qc({name:`CubemapFromEquirect`,uniforms:Wc(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});i.uniforms.tEquirect.value=t;let a=new _a(r,i),o=t.minFilter;return t.minFilter= - Possible obfuscationline 4006
}`,depthTest:!1,depthWrite:!1}),u=new _a(c,l),d=new fu(-1,1,1,-1,0,1),f=null,p=null,m=!1,h,g=null,_=[],v=!1;this.setSize=function(e,t){o.setSize(e,t),s.setSize(e,t);for(let n=0;n<_.length;n++){let r=_[n];r.setSize&&r.setSize(e,t)}},this.set - Possible obfuscationline 4012
`+Om(e.getShaderSource(t),r)}return i}function Mm(e,t){let n=Am(t);return[`vec4 ${e}( vec4 value ) {`,` return ${n[1]}( vec4( value.rgb * ${n[0]}, value.a ) );`,`}`].join( `)}var Nm={1:`Linear`,2:`Reinhard`,3:`Cineon`,4:`ACESFilmic`,6:`AgX` - Possible obfuscationline 4016
`)}function zm(e,t){let n={},r=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let i=0;i<r;i++){let r=e.getActiveAttrib(t,i),a=r.name,o=1;r.type===e.FLOAT_MAT2&&(o=2),r.type===e.FLOAT_MAT3&&(o=3),r.type===e.FLOAT_MAT4&&(o=4),n[a]={type:r.t - Possible obfuscationline 4033
`;return e.precision===`highp`?t+= #define HIGH_PRECISION`:e.precision===`mediump`?t+= #define MEDIUM_PRECISION`:e.precision===`lowp`&&(t+= #define LOW_PRECISION`),t}var Zm={1:`SHADOWMAP_TYPE_PCF`,3:`SHADOWMAP_TYPE_VSM`};function Qm(e){retu - Possible obfuscationline 4046
`,g=[p,`#define attribute in`,`#define varying out`,`#define texture2D texture`].join( `)+ `+g,_=[`#define varying in`,n.glslVersion===`300 es`?``:`layout(location = 0) out highp vec4 pc_fragColor;`,n.glslVersion===`300 es`?``:`#define gl_F - Possible obfuscationline 4055
Program Info Log: `+o+ `+e+ `+n)}}else o===``?(s===``||c===``)&&(u=!1):B(`WebGLProgram: Program Info Log:`,o);u&&(t.diagnostics={runnable:l,programLog:o,vertexShader:{log:s,prefix:g},fragmentShader:{log:c,prefix:_}})}i.deleteShader(x),i.del - Possible obfuscationline 4057
`+n)}}else o===``?(s===``||c===``)&&(u=!1):B(`WebGLProgram: Program Info Log:`,o);u&&(t.diagnostics={runnable:l,programLog:o,vertexShader:{log:s,prefix:g},fragmentShader:{log:c,prefix:_}})}i.deleteShader(x),i.deleteShader(S),w=new wm(i,h),T - Possible obfuscationline 4084
}`,Eh=[new G(1,0,0),new G(-1,0,0),new G(0,1,0),new G(0,-1,0),new G(0,0,1),new G(0,0,-1)],Dh=[new G(0,-1,0),new G(0,-1,0),new G(0,0,1),new G(0,0,-1),new G(0,-1,0),new G(0,-1,0)],Oh=new J,kh=new G,Ah=new G;function jh(e,t,n){let r=new Za,i=ne - Possible obfuscationline 4108
}`,Lh=class{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t){if(this.texture===null){let n=new Qo(e.texture);(e.depthNear!==t.depthNear||e.depthFar!==t.depthFar)&&(this.depthNear=e.depthNear,this.dep - Possible obfuscationline 4131
}`},Jh=class{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error(`THREE.Pass: .render() must be implemented in derived pass.`)}dispose(){}},Yh=new fu(-1,1,1,- - Possible obfuscationline 4163
}`},ig=class e extends Jh{constructor(e,t=1,n,r){super(),this.strength=t,this.radius=n,this.threshold=r,this.resolution=e===void 0?new W(256,256):new W(e.x,e.y),this.clearColor=new Y(0,0,0),this.needsSwap=!1,this.renderTargetsHorizontal=[], - Possible obfuscationline 4632
}`};function dg(e,t,n){let r=fg(e,t,n),i=`vec3[SAMPLES](`;for(let t=0;t<e;t++){let n=r[t];i+=`vec3(${n.x}, ${n.y}, ${n.z})${t<e-1?`,`:`)`}`}return i}function fg(e,t,n){let r=[];for(let i=0;i<e;i++){let a=2*Math.PI*t*i/e,o=(i/(e-1))**n;r.pus - Possible obfuscationline 4703
}`},gg=class extends Jh{constructor(){super(),this.isOutputPass=!0,this.uniforms=Yc.clone(hg.uniforms),this.material=new $c({name:hg.name,uniforms:this.uniforms,vertexShader:hg.vertexShader,fragmentShader:hg.fragmentShader}),this._fsQuad=ne - Possible obfuscationline 5089
}`},bg=class extends Jh{constructor(){super(),this._edgesRT=new Fn(1,1,{depthBuffer:!1,type:E}),this._edgesRT.texture.name=`SMAAPass.edges`,this._weightsRT=new Fn(1,1,{depthBuffer:!1,type:E}),this._weightsRT.texture.name=`SMAAPass.weights`;
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 64 facts
- Network access in prose of documentation.github/REPO.md:8Low confidence
- Network access in code of documentationLAUNCH.md:18Low confidence
- Network access in code of documentationLAUNCH.md:19Low confidence
- Network access in prose of documentationLAUNCH.md:26Low confidence
- Network access in prose of documentationLAUNCH.md:27Low confidence
- Network access in prose of documentationLAUNCH.md:28Low confidence
- Network access in prose of documentationLAUNCH.md:33Low confidence
- Network access in prose of documentationLAUNCH.md:34Low confidence
- Network access in prose of documentationREADME.md:5Low confidence
- Network access in prose of documentationREADME.md:6Low confidence
- Network access in prose of documentationREADME.md:7Low confidence
- Network access in prose of documentationREADME.md:8Low confidence
- Network access in prose of documentationREADME.md:9Low confidence
- Network access in prose of documentationREADME.md:10Low confidence
- Network access in prose of documentationREADME.md:74Low confidence
- Network access in prose of documentationREADME.md:76Low confidence
- Network access in prose of documentationREADME.md:84Low confidence
- Network access in prose of documentationREADME.md:85Low confidence
- Network access in prose of documentationREADME.md:86Low confidence
- Network access in prose of documentationREADME.md:87Low confidence
- Network access in prose of documentationREADME.md:94Low confidence
- Network access in prose of documentationREADME.md:164Low confidence
- Network access in prose of documentationREADME.md:165Low confidence
- Executable script in a comment of a file that runsexamples/battery-gigafactory/spec.js:1Low confidence
- Executable script in a comment of a file that runsexamples/brewery-canning/spec.js:1Low confidence
- Executable script in a comment of a file that runsexamples/croissant-bakery/spec.js:1Low confidence
- Network access in code of a file that runsexamples/croissant-bakery/spec.js:15High confidence
- Network access in code of a file that runsexamples/croissant-bakery/spec.js:16High confidence
- Network access in code of a file that runsexamples/croissant-bakery/spec.js:17High confidence
- Executable script in a comment of a file that runsexamples/drone-line/spec.js:1Low confidence
- Executable script in a comment of a file that runsexamples/ebike-motors/spec.js:1Low confidence
- Executable script in a comment of a file that runsexamples/satellite-factory/spec.js:1Low confidence
- Executable script in a comment of a file that runsruntime/app.js:1Low confidence
- Executable script in a comment of a file that runsruntime/des.js:1Low confidence
- Executable script in a comment of a file that runsruntime/kit.js:1Low confidence
- Executable script in a comment of a file that runsruntime/look.js:1Low confidence
- Executable script in a comment of a file that runsruntime/world.js:1Low confidence
- Executable script in code of a file that runsscripts/build.mjs:1High confidence
- Executable script in code of a file that runsscripts/capture.mjs:1High confidence
- Executable script in code of a file that runsscripts/check.mjs:1High confidence
- Executable script in a comment of a file that runsscripts/lib.mjs:1Low confidence
- Executable script in code of a file that runsscripts/record.mjs:1High confidence
- Network access in code of a file that runsvendor/three.bundle.js:1High confidence
- Possible obfuscation in code of a file that runsvendor/three.bundle.js:1High confidence
- Executable script in code of a file that runsvendor/three.bundle.js:1High confidence
- Possible obfuscation in code of a file that runsvendor/three.bundle.js:5High confidence
- Possible obfuscation in code of a file that runsvendor/three.bundle.js:3671High confidence
- Network access in a comment of a file that runsvendor/three.bundle.js:3702Low confidence
- Network access in a comment of a file that runsvendor/three.bundle.js:3704Low confidence
- Possible obfuscation in code of a file that runsvendor/three.bundle.js:3960High confidence
and 14 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.