@dcl-regenesislabs/opendcl 0.1.5-23569259243.commit-df8937b → 0.1.5-24375036645.commit-2b2c754

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -77,6 +77,8 @@ export interface SceneContext {
77
77
  parseError?: string;
78
78
  /** Whether this appears to be an SDK6 (legacy) scene */
79
79
  isLegacySdk6?: boolean;
80
+ /** Whether this scene was created/edited with OpenDCL */
81
+ isOpenDcl?: boolean;
80
82
  }
81
83
  /**
82
84
  * Calculate scene dimensions from parcels.
@@ -1 +1 @@
1
- {"version":3,"file":"scene-context.d.ts","sourceRoot":"","sources":["../src/scene-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene-context.d.ts","sourceRoot":"","sources":["../src/scene-context.ts"],"names":[],"mappings":"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"}
@@ -131,6 +131,8 @@ export async function detectSceneContext(cwd) {
131
131
  // Check for World configuration
132
132
  const isWorld = !!sceneJson.worldConfiguration;
133
133
  const worldName = sceneJson.worldConfiguration?.name;
134
+ // Check for OpenDCL stamp
135
+ const isOpenDcl = sceneJson.opendcl === true;
134
136
  return {
135
137
  hasScene: true,
136
138
  sceneRoot,
@@ -148,6 +150,7 @@ export async function detectSceneContext(cwd) {
148
150
  isWorld,
149
151
  worldName,
150
152
  isLegacySdk6,
153
+ isOpenDcl,
151
154
  };
152
155
  }
153
156
  /**
@@ -194,6 +197,9 @@ Migration guide: https://docs.decentraland.org/creator/sdk7/sdk7-migration-guide
194
197
  if (ctx.isWorld) {
195
198
  lines.push(`- **Deployment**: Decentraland World${ctx.worldName ? ` (${ctx.worldName})` : ""}`);
196
199
  }
200
+ if (ctx.isOpenDcl) {
201
+ lines.push(`- **Created with**: OpenDCL`);
202
+ }
197
203
  if (ctx.needsInstall) {
198
204
  lines.push("");
199
205
  lines.push("**Warning**: `node_modules/` not found. The user needs to run `npm install` before building.");
@@ -1 +1 @@
1
- {"version":3,"file":"scene-context.js","sourceRoot":"","sources":["../src/scene-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene-context.js","sourceRoot":"","sources":["../src/scene-context.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import type { ExtensionFactory } from "@mariozechner/pi-coding-agent";
9
- import { readFile } from "node:fs/promises";
9
+ import { readFile, writeFile } from "node:fs/promises";
10
10
  import { join } from "node:path";
11
11
  import { fileExists, findSceneRoot } from "./scene-utils.js";
12
12
 
@@ -17,6 +17,7 @@ interface SceneJson {
17
17
  scene?: { parcels?: string[]; base?: string };
18
18
  main?: string;
19
19
  worldConfiguration?: { name?: string; [key: string]: unknown };
20
+ opendcl?: boolean;
20
21
  [key: string]: unknown;
21
22
  }
22
23
 
@@ -59,6 +60,19 @@ After \`/init\`, customize scene.json and src/index.ts based on what the user wa
59
60
  OpenDCL supports SDK7 only. Suggest the user migrate to SDK7.
60
61
  Migration guide: https://docs.decentraland.org/creator/sdk7/sdk7-migration-guide/\n`;
61
62
  } else {
63
+ // Stamp scene.json with opendcl: true if not already present
64
+ if (!sceneJson.opendcl) {
65
+ try {
66
+ sceneJson.opendcl = true;
67
+ await writeFile(
68
+ join(sceneRoot, "scene.json"),
69
+ JSON.stringify(sceneJson, null, 2) + "\n"
70
+ );
71
+ } catch {
72
+ // Non-fatal: don't block context injection if write fails
73
+ }
74
+ }
75
+
62
76
  const lines: string[] = ["\n## Current Project"];
63
77
 
64
78
  if (sceneJson.display?.title) lines.push(`- **Title**: ${sceneJson.display.title}`);
@@ -98,6 +112,10 @@ Migration guide: https://docs.decentraland.org/creator/sdk7/sdk7-migration-guide
98
112
  lines.push(`- **Deployment**: Decentraland World${worldName ? ` (${worldName})` : ""}`);
99
113
  }
100
114
 
115
+ if (sceneJson.opendcl) {
116
+ lines.push(`- **Created with**: OpenDCL`);
117
+ }
118
+
101
119
  // Check node_modules
102
120
  if (!(await fileExists(join(sceneRoot, "node_modules")))) {
103
121
  lines.push("");
@@ -8,6 +8,7 @@
8
8
  import type { ExtensionFactory } from "@mariozechner/pi-coding-agent";
9
9
  import { Type } from "@sinclair/typebox";
10
10
  import { join } from "node:path";
11
+ import { readFile, writeFile } from "node:fs/promises";
11
12
  import { fileExists } from "./scene-utils.js";
12
13
 
13
14
  async function initScene(
@@ -25,6 +26,16 @@ async function initScene(
25
26
  });
26
27
 
27
28
  if (result.code === 0) {
29
+ // Stamp scene.json with opendcl: true so scenes created with OpenDCL can be identified
30
+ try {
31
+ const sceneJsonPath = join(cwd, "scene.json");
32
+ const content = await readFile(sceneJsonPath, "utf-8");
33
+ const sceneJson = JSON.parse(content);
34
+ sceneJson.opendcl = true;
35
+ await writeFile(sceneJsonPath, JSON.stringify(sceneJson, null, 2) + "\n");
36
+ } catch {
37
+ // Non-fatal: scene was still initialized successfully
38
+ }
28
39
  return { message: "Scene initialized and dependencies installed! Use the preview tool to start." };
29
40
  } else {
30
41
  return { message: `Init failed (exit code ${result.code}): ${result.stderr || result.stdout}`, isError: true };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dcl-regenesislabs/opendcl",
3
- "version": "0.1.5-23569259243.commit-df8937b",
3
+ "version": "0.1.5-24375036645.commit-2b2c754",
4
4
  "description": "AI coding assistant for Decentraland SDK7 scene development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -67,5 +67,5 @@
67
67
  "prompts/",
68
68
  "context/"
69
69
  ],
70
- "commit": "df8937b560bcf480c9efe51eaa38234a19e55081"
70
+ "commit": "2b2c754949150e253a0314653d1817ed4b647a2b"
71
71
  }
package/prompts/system.md CHANGED
@@ -110,9 +110,9 @@ scene-project/
110
110
  - `GltfContainer` only works with **local files** — never use external URLs for the `src` field. Always download models into the scene's `models/` directory first.
111
111
  - Place `.glb` files in a `models/` directory, textures in `images/`.
112
112
  - Don't start the preview server automatically after writing code. The user will type `/preview` when ready.
113
- - **Proactively suggest 3D assets**: When building a scene, always check both asset catalogs for free models that match the user's theme:
114
- - `context/open-source-3d-assets.md` — 991 CC0 models from Polygonal Mind (nature, medieval, cyberpunk, sci-fi, etc.)
115
- - `context/asset-packs-catalog.md` 2,700+ models from the official Decentraland Creator Hub (furniture, structures, decorations, etc.)
113
+ - **Proactively suggest 3D assets**: When building a scene, search the model catalog for free models that match the user's theme:
114
+ - `skills/add-3d-models/references/model-catalog.md` — 5,700+ optimized 3D models (characters, structures, props, nature, vehicles, effects, etc.)
115
+ - Search with `grep -i "keyword" skills/add-3d-models/references/model-catalog.md`, fetch the preview thumbnail to confirm, then download with curl.
116
116
  - Download matching models with `curl -o models/filename.glb "URL"` before referencing them in code.
117
117
 
118
118
  ### Visual Iteration Workflow
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: add-3d-models
3
- description: Add 3D models (.glb/.gltf) to a Decentraland scene using GltfContainer. Covers loading, positioning, scaling, colliders, parenting, and browsing 2,700+ free assets from the Creator Hub catalog and 991 CC0 models. Use when the user wants to add models, import GLB files, find free 3D assets, or set up model colliders. Do NOT use for materials/textures (see advanced-rendering) or model animations (see animations-tweens).
3
+ description: Add 3D models (.glb/.gltf) to a Decentraland scene using GltfContainer. Covers loading, positioning, scaling, colliders, parenting, and browsing 5,700+ free assets from the OpenDCL catalog. Use when the user wants to add models, import GLB files, find free 3D assets, or set up model colliders. Do NOT use for materials/textures (see advanced-rendering) or model animations (see animations-tweens).
4
4
  ---
5
5
 
6
6
  # Adding 3D Models to Decentraland Scenes
@@ -10,7 +10,7 @@ description: Add 3D models (.glb/.gltf) to a Decentraland scene using GltfContai
10
10
  Use `GltfContainer` to load `.glb` or `.gltf` files:
11
11
 
12
12
  ```typescript
13
- import { engine, Transform, GltfContainer } from '@dcl/sdk/ecs'
13
+ import { engine, Transform, GltfContainer, ColliderLayer } from '@dcl/sdk/ecs'
14
14
  import { Vector3, Quaternion } from '@dcl/sdk/math'
15
15
 
16
16
  const model = engine.addEntity()
@@ -20,10 +20,13 @@ Transform.create(model, {
20
20
  scale: Vector3.create(1, 1, 1)
21
21
  })
22
22
  GltfContainer.create(model, {
23
- src: 'models/myModel.glb'
23
+ src: 'models/myModel.glb',
24
+ visibleMeshesCollisionMask: ColliderLayer.CL_PHYSICS | ColliderLayer.CL_POINTER
24
25
  })
25
26
  ```
26
27
 
28
+ > **Always set `visibleMeshesCollisionMask`** when loading models. Catalog models don't include separate collider meshes — using the visible mesh as the collider ensures the model is solid and clickable.
29
+
27
30
  ## File Organization
28
31
 
29
32
  Place model files in a `models/` directory at the project root:
@@ -91,42 +94,75 @@ Transform.create(child, {
91
94
  GltfContainer.create(child, { src: 'models/hat.glb' })
92
95
  ```
93
96
 
94
- ## Free 3D Models
97
+ ## Free 3D Models — OpenDCL Catalog (5,700+ models)
98
+
99
+ The catalog file is at `{baseDir}/references/model-catalog.md`. Each line has this format:
100
+ ```
101
+ slug | dims | tris | size | category/sub | description [tags] [anim: clips] | curl command | preview: thumbnail_url
102
+ ```
95
103
 
96
- Always check both asset catalogs before suggesting the user create or find their own models.
104
+ ### How to search
97
105
 
98
- ### Creator Hub Asset Packs (2,700+ models)
106
+ Search with one keyword at a time — try the most specific word first:
107
+ ```bash
108
+ grep -i "zombie" {baseDir}/references/model-catalog.md
109
+ ```
99
110
 
100
- Read `{baseDir}/../../context/asset-packs-catalog.md` for official Decentraland models across 12 themed packs (Cyberpunk, Fantasy, Gallery, Sci-fi, Western, Pirates, etc.) with furniture, structures, decorations, nature, and more.
111
+ If no results, try synonyms, broader terms, or related words:
112
+ - "sofa" → "couch" → "seat" → "furniture"
113
+ - "car" → "vehicle" → "truck" → "van"
114
+ - "wall" → "fence" → "barrier" → "structure"
101
115
 
102
- To use a Creator Hub model:
116
+ Browse all categories to discover what's available:
103
117
  ```bash
104
- # Download from catalog
105
- mkdir -p models
106
- curl -o models/arcade_machine.glb "https://builder-items.decentraland.org/contents/bafybei..."
118
+ grep "^##" {baseDir}/references/model-catalog.md
107
119
  ```
108
- ```typescript
109
- // Reference in code — must be a local file path
110
- GltfContainer.create(entity, { src: 'models/arcade_machine.glb' })
120
+
121
+ Search within a specific category:
122
+ ```bash
123
+ grep "^##\|chair" {baseDir}/references/model-catalog.md
111
124
  ```
112
125
 
113
- ### Open Source CC0 Models (991 models)
126
+ ### How to use models
114
127
 
115
- Read `{baseDir}/../../context/open-source-3d-assets.md` for free CC0-licensed models from Polygonal Mind, organized by 18 themed collections (MomusPark, Medieval Fair, Cyberpunk, Sci-fi, etc.) with direct GitHub download URLs.
128
+ 1. Search the catalog with different keywords until you find matching models
129
+ 2. Review the results — check dimensions, triangle count, animations, and description
130
+ 3. Download the model with the curl command into `models/`
131
+ 4. Reference in code with `GltfContainer.create(entity, { src: 'models/{slug}.glb' })`
132
+ 5. If the model has animations (listed in `[anim: ...]`), use the `Animator` component to play them
133
+ 6. After placing the model, you can fetch its **preview thumbnail** (`preview:` URL) to see what it looks like
116
134
 
135
+ ### Example workflow
117
136
  ```bash
118
- curl -o models/tree.glb "https://raw.githubusercontent.com/ToxSam/cc0-models-Polygonal-Mind/main/projects/MomusPark/Tree_01_Art.glb"
119
- ```
137
+ # Search for zombie models
138
+ grep -i "zombie" {baseDir}/references/model-catalog.md
120
139
 
121
- ### How to suggest models
140
+ # Found: zombie-purple | 2.8×2.9×0.5m | 1472 tri | 271KB | character/zombie | ...
141
+ # [anim: Tpose, ZombieAttack, ZombieUP, ZombieWalk]
142
+ # preview: https://models.dclregenesislabs.xyz/blobs/bafkrei...
143
+
144
+ # Download the model
145
+ curl -o models/zombie-purple.glb "https://models.dclregenesislabs.xyz/blobs/bafybeiffc..."
146
+ ```
122
147
 
123
- 1. Read both catalog files
124
- 2. Search for models matching the user's description/theme
125
- 3. Suggest specific models with download commands
126
- 4. Download selected models into the scene's `models/` directory
127
- 5. Reference them in code with local paths
148
+ ```typescript
149
+ // Use in code with animations
150
+ import { engine, Transform, GltfContainer, Animator } from '@dcl/sdk/ecs'
151
+ import { Vector3 } from '@dcl/sdk/math'
152
+
153
+ const zombie = engine.addEntity()
154
+ Transform.create(zombie, { position: Vector3.create(8, 0, 8) })
155
+ GltfContainer.create(zombie, { src: 'models/zombie-purple.glb' })
156
+ Animator.create(zombie, {
157
+ states: [
158
+ { clip: 'ZombieWalk', playing: true, loop: true },
159
+ { clip: 'ZombieAttack', playing: false, loop: false }
160
+ ]
161
+ })
162
+ ```
128
163
 
129
164
  > **Important**: `GltfContainer` only works with **local files**. Never use external URLs for the model `src` field. Always download models into `models/` first.
165
+ > **Never `cd` into the models directory**. Always run curl from the project root with `curl -o models/slug.glb "URL"`. Do NOT use `cd models && curl -o slug.glb`.
130
166
 
131
167
  ### Checking Model Load State
132
168