{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ai-3d-generator",
    "name": "Ai 3d Generator",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/vonzellu/ai-3d-generator",
    "canonicalUrl": "https://clawhub.ai/vonzellu/ai-3d-generator",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ai-3d-generator",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ai-3d-generator",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "examples/cyberpunk_robot.py",
      "scripts/generate-from-prompt.sh",
      "scripts/model_generator.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/ai-3d-generator"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/ai-3d-generator",
    "agentPageUrl": "https://openagent3.xyz/skills/ai-3d-generator/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ai-3d-generator/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ai-3d-generator/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "AI 3D Model Generator",
        "body": "Génération automatique de modèles 3D détaillés à partir de descriptions textuelles."
      },
      {
        "title": "Architecture",
        "body": "Prompt utilisateur → LLM (Kimi/Gemini) → Code Python/Trimesh → Génération STL → Export"
      },
      {
        "title": "1. Prompt Engineering (template)",
        "body": "Crée un fichier prompts/3d-generator.txt:\n\nTu es un expert en modélisation 3D paramétrique. Génère un script Python utilisant Trimesh \npour créer le modèle 3D décrit ci-dessous.\n\nRÈGLES:\n- Utilise trimesh.creation (icosphere, cylinder, cone, torus, box)\n- Pour les détails complexes: utiliser des boucles et paramètres\n- Résolution élevée: subdivisions=4-5 pour les sphères, sections=32-64 pour cylindres\n- Ajouter des détails de surface (panneaux, textures géométriques)\n- Structure modulaire avec fonctions réutilisables\n- Exporter en STL binaire à la fin\n\nSCRIPT TEMPLATE:\n```python\n#!/usr/bin/env python3\nimport numpy as np\nimport trimesh\nfrom trimesh.creation import icosphere, cylinder, cone, torus, box\nfrom trimesh.transformations import rotation_matrix\nimport os\n\nEXPORT_DIR = \"/home/celluloid/.openclaw/workspace/stl-exports\"\n\ndef save_mesh(mesh, filename):\n    os.makedirs(EXPORT_DIR, exist_ok=True)\n    filepath = os.path.join(EXPORT_DIR, filename)\n    mesh.export(filepath)\n    print(f\"✓ Exporté: {filepath}\")\n    print(f\"  Triangles: {len(mesh.faces):,}\")\n    return filepath\n\ndef rotate_mesh(mesh, angle, axis, point=None):\n    if point is None:\n        point = [0, 0, 0]\n    mat = rotation_matrix(angle, axis, point)\n    mesh.apply_transform(mat)\n    return mesh\n\n# === MODÈLE PRINCIPAL ===\ndef create_model():\n    meshes = []\n    \n    # [GÉNÈRE LE MODÈLE ICI]\n    \n    # Fusion et optimisation\n    combined = trimesh.util.concatenate(meshes)\n    combined.merge_vertices()\n    return combined\n\nif __name__ == \"__main__\":\n    mesh = create_model()\n    save_mesh(mesh, \"[NOM_DU_MODELE].stl\")\n\nDESCRIPTION DU MODÈLE À CRÉER:\n{{USER_DESCRIPTION}}\n\nGénère uniquement le code Python complet, sans explications.\n\n## 2. Skill OpenClaw Automatisé\n\nCrée le fichier `~/.openclaw/workspace/skills/ai-3d-generator/SKILL.md`:\n\n### Utilisation\n\n#### Génération simple\n```bash\n# Génère un modèle à partir d'une description\n~/.openclaw/workspace/skills/ai-3d-generator/scripts/generate-from-prompt.sh \"vaisseau spatial avec ailes delta et cockpit vitré\"\n\nGénération avec paramètres\n\n# Avec spécifications techniques\n~/.openclaw/workspace/skills/ai-3d-generator/scripts/generate-from-prompt.sh \\\n  \"robot humanoïde articulé\" \\\n  --scale=50mm \\\n  --detail=high \\\n  --output=robot.stl"
      },
      {
        "title": "Processus",
        "body": "Analyse du prompt → Extraction entités (formes, dimensions, détails)\nGénération code → LLM crée script Python/Trimesh\nValidation syntaxique → Vérification imports et structure\nExécution → Génération mesh + export STL\nPost-traitement → Optimisation, vérification manifold"
      },
      {
        "title": "Bon prompt (détaillé, technique):",
        "body": "Crée un château médiéval avec:\n- Tours cylindriques aux 4 coins (diamètre 8mm, hauteur 25mm)\n- Créneaux sur les tours\n- Mur d'enceinte carré (40x40mm)\n- Pont-levis à l'avant\n- Texture de pierre avec des blocs individuels\n- Échelle 1:100 pour impression 3D"
      },
      {
        "title": "Mauvais prompt (trop vague):",
        "body": "Fais-moi un château"
      },
      {
        "title": "Cron job pour génération régulière",
        "body": "{\n  \"name\": \"3d:generate-daily\",\n  \"schedule\": {\"kind\": \"cron\", \"expr\": \"0 9 * * *\"},\n  \"payload\": {\n    \"message\": \"Génère un modèle 3D aléatoire du jour (animaux, architecture, véhicules) et exporte en STL\",\n    \"model\": \"openrouter/moonshotai/kimi-k2.5\"\n  }\n}"
      },
      {
        "title": "Techniques Avancées",
        "body": "Sculpting procédural\n\n# Ajouter du bruit de surface pour texture\ndef add_surface_noise(mesh, amplitude=0.1):\n    vertices = mesh.vertices.copy()\n    noise = np.random.normal(0, amplitude, vertices.shape)\n    mesh.vertices = vertices + noise\n    return mesh\n\nDétails paramétriques\n\n# Générer des détails répétitifs\nfor i in range(100):  # 100 panneaux de surface\n    angle = i * 2 * np.pi / 100\n    panel = create_detailed_panel()\n    position_on_surface(panel, radius=20, angle=angle)\n\nBoolean operations optimisées\n\n# Utiliser trimesh.boolean pour les découpes complexes\nfrom trimesh.boolean import difference, union, intersection\n\nresult = difference(base_mesh, cutting_tool)"
      },
      {
        "title": "Commande OpenClaw:",
        "body": "Génère un modèle 3D d'une station spatiale en anneau avec:\n- Anneau principal de 80mm de diamètre\n- 6 modules d'habitation sur l'anneau\n- Sphère centrale de commande\n- Antennes et panneaux solaires\n- Style cyberpunk avec câbles et tuyaux\nExporte en STL haute résolution."
      },
      {
        "title": "Réponse Automatique:",
        "body": "LLM génère le script Python (~30s)\nExécution Trimesh (~1-2min)\nExport STL optimisé\nRapport: triangles, volume, dimensions"
      },
      {
        "title": "Notes",
        "body": "Pour les modèles très complexes (>100k triangles), prévoir plus de temps\nUtiliser trimesh.smoothing pour lisser les surfaces si nécessaire\nVérifier que le modèle est \"manifold\" (étanche) pour l'impression 3D\nSauvegarder les scripts générés pour réutilisation/modification"
      }
    ],
    "body": "AI 3D Model Generator\n\nGénération automatique de modèles 3D détaillés à partir de descriptions textuelles.\n\nArchitecture\nPrompt utilisateur → LLM (Kimi/Gemini) → Code Python/Trimesh → Génération STL → Export\n\nPipeline Automatique\n1. Prompt Engineering (template)\n\nCrée un fichier prompts/3d-generator.txt:\n\nTu es un expert en modélisation 3D paramétrique. Génère un script Python utilisant Trimesh \npour créer le modèle 3D décrit ci-dessous.\n\nRÈGLES:\n- Utilise trimesh.creation (icosphere, cylinder, cone, torus, box)\n- Pour les détails complexes: utiliser des boucles et paramètres\n- Résolution élevée: subdivisions=4-5 pour les sphères, sections=32-64 pour cylindres\n- Ajouter des détails de surface (panneaux, textures géométriques)\n- Structure modulaire avec fonctions réutilisables\n- Exporter en STL binaire à la fin\n\nSCRIPT TEMPLATE:\n```python\n#!/usr/bin/env python3\nimport numpy as np\nimport trimesh\nfrom trimesh.creation import icosphere, cylinder, cone, torus, box\nfrom trimesh.transformations import rotation_matrix\nimport os\n\nEXPORT_DIR = \"/home/celluloid/.openclaw/workspace/stl-exports\"\n\ndef save_mesh(mesh, filename):\n    os.makedirs(EXPORT_DIR, exist_ok=True)\n    filepath = os.path.join(EXPORT_DIR, filename)\n    mesh.export(filepath)\n    print(f\"✓ Exporté: {filepath}\")\n    print(f\"  Triangles: {len(mesh.faces):,}\")\n    return filepath\n\ndef rotate_mesh(mesh, angle, axis, point=None):\n    if point is None:\n        point = [0, 0, 0]\n    mat = rotation_matrix(angle, axis, point)\n    mesh.apply_transform(mat)\n    return mesh\n\n# === MODÈLE PRINCIPAL ===\ndef create_model():\n    meshes = []\n    \n    # [GÉNÈRE LE MODÈLE ICI]\n    \n    # Fusion et optimisation\n    combined = trimesh.util.concatenate(meshes)\n    combined.merge_vertices()\n    return combined\n\nif __name__ == \"__main__\":\n    mesh = create_model()\n    save_mesh(mesh, \"[NOM_DU_MODELE].stl\")\n\n\nDESCRIPTION DU MODÈLE À CRÉER: {{USER_DESCRIPTION}}\n\nGénère uniquement le code Python complet, sans explications.\n\n\n## 2. Skill OpenClaw Automatisé\n\nCrée le fichier `~/.openclaw/workspace/skills/ai-3d-generator/SKILL.md`:\n\n### Utilisation\n\n#### Génération simple\n```bash\n# Génère un modèle à partir d'une description\n~/.openclaw/workspace/skills/ai-3d-generator/scripts/generate-from-prompt.sh \"vaisseau spatial avec ailes delta et cockpit vitré\"\n\nGénération avec paramètres\n# Avec spécifications techniques\n~/.openclaw/workspace/skills/ai-3d-generator/scripts/generate-from-prompt.sh \\\n  \"robot humanoïde articulé\" \\\n  --scale=50mm \\\n  --detail=high \\\n  --output=robot.stl\n\nProcessus\nAnalyse du prompt → Extraction entités (formes, dimensions, détails)\nGénération code → LLM crée script Python/Trimesh\nValidation syntaxique → Vérification imports et structure\nExécution → Génération mesh + export STL\nPost-traitement → Optimisation, vérification manifold\n3. Exemples de Prompts Efficaces\nBon prompt (détaillé, technique):\nCrée un château médiéval avec:\n- Tours cylindriques aux 4 coins (diamètre 8mm, hauteur 25mm)\n- Créneaux sur les tours\n- Mur d'enceinte carré (40x40mm)\n- Pont-levis à l'avant\n- Texture de pierre avec des blocs individuels\n- Échelle 1:100 pour impression 3D\n\nMauvais prompt (trop vague):\nFais-moi un château\n\n4. Automatisation Complète\nCron job pour génération régulière\n{\n  \"name\": \"3d:generate-daily\",\n  \"schedule\": {\"kind\": \"cron\", \"expr\": \"0 9 * * *\"},\n  \"payload\": {\n    \"message\": \"Génère un modèle 3D aléatoire du jour (animaux, architecture, véhicules) et exporte en STL\",\n    \"model\": \"openrouter/moonshotai/kimi-k2.5\"\n  }\n}\n\n5. Optimisations pour Ultra-Détail\nTechniques Avancées\nSculpting procédural\n# Ajouter du bruit de surface pour texture\ndef add_surface_noise(mesh, amplitude=0.1):\n    vertices = mesh.vertices.copy()\n    noise = np.random.normal(0, amplitude, vertices.shape)\n    mesh.vertices = vertices + noise\n    return mesh\n\nDétails paramétriques\n# Générer des détails répétitifs\nfor i in range(100):  # 100 panneaux de surface\n    angle = i * 2 * np.pi / 100\n    panel = create_detailed_panel()\n    position_on_surface(panel, radius=20, angle=angle)\n\nBoolean operations optimisées\n# Utiliser trimesh.boolean pour les découpes complexes\nfrom trimesh.boolean import difference, union, intersection\n\nresult = difference(base_mesh, cutting_tool)\n\n6. Workflow Complet Exemple\nCommande OpenClaw:\nGénère un modèle 3D d'une station spatiale en anneau avec:\n- Anneau principal de 80mm de diamètre\n- 6 modules d'habitation sur l'anneau\n- Sphère centrale de commande\n- Antennes et panneaux solaires\n- Style cyberpunk avec câbles et tuyaux\nExporte en STL haute résolution.\n\nRéponse Automatique:\nLLM génère le script Python (~30s)\nExécution Trimesh (~1-2min)\nExport STL optimisé\nRapport: triangles, volume, dimensions\nNotes\nPour les modèles très complexes (>100k triangles), prévoir plus de temps\nUtiliser trimesh.smoothing pour lisser les surfaces si nécessaire\nVérifier que le modèle est \"manifold\" (étanche) pour l'impression 3D\nSauvegarder les scripts générés pour réutilisation/modification"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/vonzellu/ai-3d-generator",
    "publisherUrl": "https://clawhub.ai/vonzellu/ai-3d-generator",
    "owner": "vonzellu",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ai-3d-generator",
    "downloadUrl": "https://openagent3.xyz/downloads/ai-3d-generator",
    "agentUrl": "https://openagent3.xyz/skills/ai-3d-generator/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ai-3d-generator/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ai-3d-generator/agent.md"
  }
}