get_sample
Returns a complete, compilable Kotlin sample for a given SceneView scenario. Use this to get a working starting point before customising. Call `list_samples` first if you are unsure which scenario fits.
list_samples
Lists all available SceneView code samples with their IDs, descriptions, and tags. Use this to find the right sample before calling `get_sample`, or to show the user what SceneView can do.
get_setup
Returns the Gradle dependency and AndroidManifest snippet required to use SceneView in an Android project.
validate_code
Checks a Kotlin or Swift SceneView snippet for common mistakes. For Kotlin: threading violations, wrong destroy order, missing null-checks, LightNode trailing-lambda bug, deprecated 2.x APIs. For Swift: missing @MainActor, async/await patterns, missing imports, RealityKit mistakes. Language is auto-detected. Always call this before presenting generated SceneView code to the user.
get_migration_guide
Returns the full SceneView 2.x → 3.0 migration guide. Use this when a user reports code that worked in 2.x but breaks in 3.0, or when helping someone upgrade.
get_node_reference
Returns the full API reference for a specific SceneView node type or composable — parameters, types, and a usage example — parsed directly from the official llms.txt. Use this when you need the exact signature or options for a node (e.g. ModelNode, LightNode, ARScene). If the requested type is not found, the response lists all available types.
get_platform_roadmap
Returns the SceneView multi-platform roadmap — current Android support status, planned iOS/KMP/web targets, and timeline. Use this when the user asks about cross-platform support, iOS, Kotlin Multiplatform, or future plans.
get_best_practices
Returns SceneView performance and architecture best practices — memory management, model optimization, threading rules, Compose integration patterns, and common anti-patterns. Use this when the user asks about performance, optimization, best practices, or architecture.
get_ar_setup
Returns detailed AR setup instructions — AndroidManifest permissions and features, Gradle dependencies, ARCore session configuration options (depth, light estimation, instant placement, plane detection, image tracking, cloud anchors), and a complete working AR starter template. More detailed than `get_setup` for AR-specific configuration.
get_troubleshooting
Returns the SceneView troubleshooting guide — common crashes (SIGABRT, model not showing), build failures, AR issues (drift, overexposure, image detection), and performance problems. Use this when a user reports something not working, a crash, or unexpected behavior.
get_ios_setup
Returns the complete iOS setup guide for SceneViewSwift — SPM dependency, Package.swift example, minimum platform versions, Info.plist entries for AR (camera permission), and basic SwiftUI integration code. Use this when a user wants to set up SceneView for iOS, macOS, or visionOS.
get_web_setup
Returns the complete Web setup guide for SceneView Web — npm install, Kotlin/JS Gradle config, HTML canvas setup, and basic Filament.js integration code. SceneView Web uses the same Filament rendering engine as Android, compiled to WebAssembly. Use this when a user wants to set up SceneView for browsers.
render_3d_preview
Generates an interactive 3D preview link. Accepts a model URL, a SceneView code snippet, or both. Returns a URL to sceneview.github.io/preview that renders the model in the browser with orbit controls, AR support, and sharing. For model URLs: embeds a model-viewer link directly. For code snippets: shows the 3D preview with the code in a companion panel. Use this when you want to show a 3D model to the user — paste the link in your response and they can click to see it live.
create_3d_artifact
Generates a complete, self-contained HTML page with interactive 3D content that Claude can render as an artifact. Returns valid HTML using model-viewer (Google's web component for 3D). Use this when the user asks to "show", "preview", "visualize" 3D models, create 3D charts/dashboards, or view products in 360°. The HTML works standalone in any browser, supports AR on mobile, and includes orbit controls. Types: "model-viewer" for 3D model viewing, "chart-3d" for 3D data visualization (bar charts with perspective), "scene" for rich 3D scenes with lighting, "product-360" for product turntables with hotspot annotations.
get_platform_setup
Returns the complete setup guide for any SceneView-supported platform: Android, iOS, Web, Flutter, React Native, Desktop, or Android TV. Includes dependencies, manifest/permissions, minimum SDK, and a working starter template. Replaces `get_setup`, `get_ios_setup`, and `get_web_setup` with a single unified tool. Use this when a user wants to set up SceneView on any platform.
migrate_code
Automatically migrates SceneView 2.x Kotlin code to 3.x. Applies known renames (SceneView→Scene, ArSceneView→ARScene), replaces deprecated APIs (loadModelAsync→rememberModelInstance, Engine.create→rememberEngine), fixes LightNode trailing-lambda bug, removes Sceneform imports, and more. Returns the migrated code with a detailed changelog. Use this when a user has 2.x code that needs updating, or when you detect 2.x patterns in their code.
debug_issue
Returns a targeted debugging guide for a specific SceneView issue. Categories: "model-not-showing" (invisible models), "ar-not-working" (AR camera/planes), "crash" (SIGABRT/native), "performance" (low FPS/memory), "build-error" (Gradle/dependency), "black-screen" (no rendering), "lighting" (dark/bright/shadows), "gestures" (touch/drag), "ios" (Swift/RealityKit). You can provide a category directly, or describe the problem and it will be auto-detected. Use this when a user reports something not working.
generate_scene
Generates a complete, compilable SceneView{} or ARSceneView{} Kotlin composable from a natural language description. Parses 40+ object types (furniture, vehicles, animals, food, buildings, nature), quantities ("two chairs", "3 spheres"), environment (indoor/outdoor/dark), and mode (3D or AR). Returns working Kotlin code with proper engine setup, model loading, lighting, and ground plane. Use this when a user says "build me a scene with..." or describes a 3D scene they want to create.
list_platforms
Returns all platforms supported by SceneView with their renderer, framework, status, and version. Use this to answer questions about what platforms SceneView supports, or to show cross-platform capabilities.
get_animation_guide
Returns a comprehensive guide for animating 3D models in SceneView — playing embedded glTF animations, Spring physics animations (KMP core), Compose property animations (animateFloatAsState, InfiniteTransition), SmoothTransform for smooth following, and AR animated models. Includes compilable Kotlin code samples. Use this when a user asks about animation, motion, springs, smooth movement, or how to play model animations.
get_gesture_guide
Returns a comprehensive guide for adding gestures to 3D objects in SceneView — isEditable for one-line pinch-to-scale/drag-to-rotate/tap-to-select, custom onTouchEvent handlers, AR tap-to-place, drag-to-rotate with sensitivity, pinch-to-scale with limits, multi-model selection, and HitResultNode surface cursor. Includes compilable Kotlin code samples. Use this when a user asks about touch, gestures, interaction, drag, pinch, tap, or editing 3D objects.
get_performance_tips
Returns a comprehensive performance optimization guide for SceneView — polygon budgets per device tier, LOD, texture compression (KTX2/Basis Universal), mesh compression (Draco/Meshopt), engine reuse, per-frame allocation avoidance, frustum culling, instancing, lighting optimization, post-processing costs, and profiling with Systrace and Android GPU Inspector. Includes code samples and CLI commands. Use this when a user asks about performance, optimization, FPS, memory, profiling, or slow rendering.
get_material_guide
Returns a comprehensive guide for PBR materials in SceneView — baseColor, metallic, roughness, reflectance, emissive, clearCoat, normal maps. Includes recipes for common materials (glass, chrome, gold, rubber, car paint), code samples for modifying materials on ModelNode, texture setup, and environment lighting requirements. Use this when a user asks about materials, textures, colors, shaders, appearance, or why their model looks wrong (flat, dark, too shiny).
get_collision_guide
Returns a comprehensive guide for collision detection, hit testing, and physics in SceneView — node tapping (onTouchEvent), AR surface hit testing (frame.hitTest), ray-box/ray-sphere intersection (KMP core), bounding boxes, and basic rigid body physics. Use this when a user asks about tapping 3D objects, collision detection, physics simulation, ray casting, or hit testing.
get_model_optimization_guide
Returns a complete guide for optimizing 3D models for SceneView — polygon budgets per device tier, file size targets, Draco/Meshopt mesh compression, KTX2 texture compression, the recommended optimization pipeline (gltf-transform CLI), texture sizing rules, LOD strategies, and quick wins. Use this when a user asks about model optimization, file size, load times, polygon count, texture compression, or preparing models for mobile.
get_web_rendering_guide
Returns a comprehensive guide for SceneView Web (Filament.js WASM) — architecture, quick start (sceneview.js npm or Kotlin/JS), IBL environment lighting (critical for PBR quality), rendering quality settings (SSAO, bloom, TAA), camera exposure tuning, Filament.js vs model-viewer comparison, and web performance tips. Use this when a user asks about web 3D rendering, Filament.js, browser viewing, WebGL, or wants to display 3D models in a web page.
search_models
Searches Sketchfab for free 3D models matching a natural-language query and returns a shortlist with names, authors, licenses, thumbnails, triangle counts, and viewer/embed URLs. Use this BEFORE generating SceneView code when the user asks for a specific asset ("a red sports car", "a low-poly tree", "a sci-fi robot") — pick the best result, then load it with `rememberModelInstance(modelLoader, "models/your-file.glb")` or embed its viewer URL. Requires a free `SKETCHFAB_API_KEY` environment variable (BYOK — nothing is charged by SceneView). If the key is missing, the tool returns instructions for getting one at sketchfab.com/register.
analyze_project
Scans a local SceneView project on the user's machine and returns a structured analysis: detected project type (Android, iOS, Web), extracted SceneView dependency version, whether it is outdated vs the latest known release, and any known anti-patterns found by reading source files (threading violations, LightNode trailing-lambda bug, deprecated 2.x APIs, Sceneform imports). Safe: scans at most 30 source files and 500 KB total, never writes to disk. Use this when a user asks 'is my project up to date?', 'what's wrong with my SceneView code?', or when you want a fast sanity check of a project before generating code for it.
get_car_configurator
Returns a complete, compilable Kotlin composable for a 3D car configurator using SceneView. Supports 10 body styles (sedan, SUV, coupe, sports, electric, etc.). Features include color picker with 8 paint options, material variants (metallic, matte, pearlescent, gloss), camera presets (exterior, interior, detail views), auto-rotation turntable, and AR mode for placing the car in your driveway. Uses KHR_materials_variants for paint switching and three-point studio lighting.
get_hud_overlay
Returns a complete, compilable Kotlin composable for a heads-up display overlay using SceneView ViewNode. HUD elements include speedometer, navigation arrows, alerts, fuel gauge, temperature, gear indicator, turn signals, and lane assist. Choose from 6 styles (minimal, sport, luxury, combat, eco, retro). Supports night mode (green-on-black), metric/imperial units, and AR mode for projecting HUD elements in real space.
get_dashboard_3d
Returns a complete, compilable Kotlin composable for a 3D instrument cluster using SceneView. Gauge types: speedometer, tachometer, fuel, temperature, oil-pressure, battery, boost, odometer. Themes: classic, digital, sport, luxury, electric, retro. The dashboard housing is a 3D model while gauge faces use ViewNode for crisp animated rendering. Includes spring-damped needle animations, red zone indicators, and interactive slider controls.
get_ar_showroom
Returns a complete, compilable Kotlin composable for an AR car showroom using SceneView ARScene. Place a full-size car in your driveway, parking lot, garage, showroom floor, or street. Features include walk-around, open doors animation, color swap, real-world measurements, side-by-side comparison, photo capture, and night lighting effects. Real 1:1 scale placement with ground-plane shadows.
get_parts_catalog
Returns a complete, compilable Kotlin composable for a 3D parts catalog explorer using SceneView. Categories: engine, transmission, suspension, brakes, exhaust, interior, body, electrical, wheels, cooling. Features include exploded-view slider, part selection highlighting, detail zoom, cross-section plane, assembly animation, part info cards, and search. Each category comes with realistic part data (names, part numbers, pricing). AR mode for hands-on part examination.
get_ev_charging_station_viewer
Returns a complete, compilable Kotlin composable that renders a 3D EV charging station model with an overlay UI showing live charge level, available bays, and estimated time to full. Supports 5 connector types (CCS, CHAdeMO, Type 2, Tesla, J1772) and 4 station layouts (single, dual, bank, canopy). The overlay is a Material 3 card bound to live state that your app can wire to a real BLE/backend charging session. Optional AR mode uses ARScene so the station can be placed in the real world.
get_car_paint_shader
Returns a realistic Filament .mat car-paint material definition (clearcoat + optional metallic flakes) plus a Kotlin SceneView snippet showing how to compile it to .filamat and apply it to a loaded car model's material instances. Parameters are physically based: baseColor, metallic, roughness, clearcoat, clearcoatRoughness. Supports 4 finish presets (solid, metallic, pearlescent, matte) that override the PBR knobs with realistic defaults. Use this for car configurators where hand-writing a correct clearcoat material is otherwise tedious.
list_car_models
Lists free, openly-licensed 3D car models suitable for SceneView apps. Includes the Khronos ToyCar (CC0, GLB ready), Sketchfab free cars (sedans, SUVs, sports, classics, EVs), engine assemblies, brake calipers, suspension kits, interior cockpits, steering wheels, and dashboard panels. Categories: complete-car, concept, classic, parts, interior, wheels, engine, test-model. Each entry includes source URL, format, license, and SceneView compatibility notes.
validate_automotive_code
Validates a Kotlin SceneView snippet for common automotive-app mistakes. Checks threading violations (Filament JNI on background thread), null-safety for model loading, LightNode trailing-lambda bug, deprecated 2.x APIs, automotive-specific issues (unrealistic scale, unsupported formats like FBX/.blend, turntable performance), and missing imports. Always call this before presenting generated automotive SceneView code.
get_character_viewer
Returns a complete, compilable Kotlin composable for a 3D character viewer with animation state management using SceneView. Supports humanoid, cartoon, chibi, robot, creature, animal, fantasy, and sci-fi character styles. Includes switchable animation states (idle, walk, run, jump, attack, die, dance, wave), three-point lighting, auto-rotation option, and AR mode for placing characters in the real world.
get_level_editor
Returns a complete, compilable Kotlin composable for a procedural level editor using SceneView. Uses built-in geometry nodes (CubeNode, SphereNode, CylinderNode) for real-time level construction — no external models needed. Supports 10 themes (dungeon, forest, space, underwater, desert, city, castle, ice, lava, sky) with theme-appropriate lighting. Features editable block placement, geometry palette, and grid display.
get_physics_game
Returns a complete, compilable Kotlin composable for a physics simulation game using SceneView. Includes full Euler integration physics with gravity, bounciness, collision detection, and response. Presets: bouncing-balls, bowling, billiards, marble-run, tower-collapse, pong-3d, pinball, cannon. Customizable gravity (earth, moon, mars, jupiter, zero-g, reverse). Optional trajectory prediction. Includes pause, reset, and score tracking.
get_particle_effects
Returns a complete, compilable Kotlin composable for visual particle effects using SceneView. Effects: fire, smoke, sparkles, rain, snow, explosion, magic, confetti, bubbles, fireflies. Each particle is rendered as a SphereNode with per-frame position, size, and lifetime updates. Includes emitter shape, velocity, gravity, blend mode, and loop settings. Play/pause and restart controls included.
get_inventory_3d
Returns a complete, compilable Kotlin composable for a 3D game item inventory with interactive preview using SceneView. Layout options: grid, carousel, list, radial. Selecting an item shows a 3D model preview with auto-rotation. Includes category filter tabs, item stats panel, quantity display, and rarity system. Sample items included (weapons, armor, potions, gems, etc.).
list_game_models
Lists free, openly-licensed 3D game models suitable for SceneView apps. Sources include Khronos glTF Sample Models (CC BY/CC0), Kenney.nl (CC0 Public Domain), Quaternius (CC0), and Sketchfab (CC BY). Categories: character, weapon, vehicle, environment, prop, creature, building, item, effect, ui. Each entry includes source URL, format, license, and SceneView compatibility notes.
validate_game_code
Validates a Kotlin SceneView snippet for common gaming-app mistakes. Checks threading violations (Filament JNI on background thread), null-safety for model loading, LightNode trailing-lambda bug, deprecated 2.x APIs, physics timestep issues, particle performance, animation safety, and Random seeding. Always call this before presenting generated gaming SceneView code.
get_anatomy_viewer
Returns a complete, compilable Kotlin composable for a 3D anatomy viewer using SceneView. Supports skeleton, muscular, circulatory, nervous, respiratory, digestive, and other body systems. Choose a body region (head, torso, upper-limb, lower-limb, spine, pelvis, hand, foot, full). Options include transparency for layered views, exploded view for educational purposes, anatomical labels, and AR mode for placing anatomy models in the real world.
get_molecule_viewer
Returns a complete, compilable Kotlin composable for a 3D molecular structure viewer using SceneView. Supports proteins, DNA, RNA, small molecules, antibodies, viruses, and enzymes. Choose representation (ball-and-stick, space-filling, ribbon, wireframe, surface) and color scheme (element/CPK, chain, secondary-structure, hydrophobicity). Can auto-rotate and supports AR mode. Includes workflow for converting PDB structures to GLB.
get_medical_imaging
Returns a complete, compilable Kotlin composable for 3D visualization of medical imaging data (CT, MRI, PET, ultrasound, X-ray) using SceneView. Includes the full DICOM-to-3D pipeline documentation: parsing DICOM with dcm4che, generating 3D meshes with marching cubes, and rendering in SceneView. Supports windowing controls (window center/width in HU), segmentation overlays (tumor, vessel highlighting), and AR mode for examining reconstructions in real space.
get_surgical_planning
Returns a complete, compilable Kotlin composable for surgical planning 3D visualization using SceneView. Supports orthopedic, cardiac, neurosurgery, maxillofacial, spinal, laparoscopic, and ophthalmic surgery types. Features include measurement tools, annotation, cross-section plane, implant placement preview, surgical trajectory planning, and pre-operative comparison. AR mode lets surgeons examine patient anatomy at real scale.
get_dental_viewer
Returns a complete, compilable Kotlin composable for dental 3D scanning visualization using SceneView. View types include full-arch, single-tooth, implant, orthodontic, crown-bridge, intraoral-scan, and CBCT reconstruction. Features include measurement, margin line drawing, occlusion analysis, before/after comparison, shade matching, and orthodontic treatment stage timeline. Supports root and nerve overlays for implant planning. Includes intraoral scanner export workflow (iTero, 3Shape, Medit).
list_medical_models
Lists free, openly-licensed 3D medical models suitable for SceneView apps. Sources include BodyParts3D (CC BY-SA), NIH 3D Print Exchange (Public Domain), and Sketchfab (CC BY). Categories: anatomy, skeleton, organ, muscle, dental, molecule, cell, surgical, imaging, prosthetic. Each entry includes source URL, format, license, and conversion notes for SceneView compatibility.
validate_medical_code
Validates a Kotlin SceneView snippet for common medical-app mistakes. Checks threading violations (Filament JNI on background thread), null-safety for model loading, LightNode trailing-lambda bug, deprecated 2.x APIs, DICOM library requirements, STL/OBJ format warnings, and transparency rendering order. Always call this before presenting generated medical SceneView code.
get_room_planner
Returns a complete, compilable Kotlin composable for a 3D room layout planner using SceneView. Procedurally generates walls, floor, ceiling with configurable dimensions. Supports living room, bedroom, kitchen, bathroom, dining room, office, studio, hallway, garage, and open-plan layouts. Options include wall style (standard, brick, concrete, wood-panel, glass), floor style (hardwood, tile, carpet, marble, concrete, laminate, vinyl), window/door count, and AR mode for placing a miniature room layout on a real surface.
get_furniture_placement
Returns a complete, compilable Kotlin composable for AR furniture placement using SceneView. Place furniture in your real room — tap a surface to position, rotate and scale. Supports sofa, chair, table, bed, desk, shelf, wardrobe, cabinet, lamp, rug, plant, and mirror. Options include size presets (small/medium/large/custom), custom color hex, rotation and scaling controls. Also generates 3D-only preview mode.
get_material_switcher
Returns a complete, compilable Kotlin composable for switching wall paint, floor material, fabric, and other surfaces in 3D using SceneView. Live-preview colors and textures on a room model with real-time PBR material updates. Surfaces: wall-paint, floor, ceiling, backsplash, countertop, fabric, curtain, wallpaper. Options include paint finish (matte/satin/semi-gloss/gloss/eggshell), color palette, custom texture paths, before/after comparison slider, and AR mode.
get_lighting_design
Returns a complete, compilable Kotlin composable for interior lighting design using SceneView. Configure multiple light types in a 3D room scene — ambient, spot, accent, pendant, recessed, track, sconce, floor lamp, table lamp, chandelier, strip LED, and natural light. Options include color temperature (warm-white ~2700K to daylight ~6500K), per-light dimming sliders, shadow casting, and AR mode to preview lighting in your real room.
get_room_tour
Returns a complete, compilable Kotlin composable for an animated camera walkthrough of a 3D room using SceneView. Tour styles: orbit (circle around room), walkthrough (first-person path), flyover (elevated bird's eye), dolly (forward/backward), panoramic (360 from center). Options include speed (slow/normal/fast), number of waypoints, loop/one-shot, pause-on-interaction, and AR mode to view a miniature tour on a real surface.
list_furniture_models
Lists free, openly-licensed 3D furniture models suitable for SceneView apps. Sources include Poly Haven (CC0), Khronos glTF Sample Assets (Apache 2.0 / CC BY 4.0), and Sketchfab (CC BY 4.0). Categories: seating, table, bed, storage, lighting, decor, kitchen, bathroom, outdoor, office. Each entry includes source URL, format, license, and description.
validate_interior_code
Validates a Kotlin SceneView snippet for common interior-design app mistakes. Checks threading violations (Filament JNI on background thread), null-safety for model loading, LightNode trailing-lambda bug, deprecated 2.x APIs, unsupported format warnings (FBX, OBJ, 3DS), texture size warnings, and multiple model instance performance. Always call this before presenting generated interior SceneView code.
setup_rerun_project
Generates the minimum set of files a SceneView developer needs to start logging to Rerun. Supports Android (Gradle + Kotlin composable), iOS (Package.swift + SwiftUI view), Web (HTML with the Rerun Web Viewer WASM module embedded next to a SceneView canvas), and a standalone Python pipeline. Optionally bundles a Python sidecar script that receives the JSON-lines wire format from the device and re-logs it into the Rerun viewer.
generate_ar_logger
Returns a ready-to-paste Kotlin (Jetpack Compose) or Swift (SwiftUI) helper that streams an AR session to Rerun. Pick which data types to log — camera pose, detected planes, point clouds, anchors, hit results — and the optional throttle (default 10 Hz). The generated code uses the RerunBridge helper (arsceneview.rerun.RerunBridge on Android, SceneViewSwift.RerunBridge on iOS) and drops frames on backpressure so the main thread is never blocked.
generate_python_sidecar
Returns a standalone Python script that listens on a TCP port for the JSON-lines wire format emitted by a SceneView RerunBridge client (Android or iOS) and re-logs each event into the Rerun viewer as the matching archetype (Transform3D for poses, Points3D for clouds, LineStrips3D for plane boundaries). Useful for AR debugging sessions — run it on your dev machine while your device runs the sample app.
embed_web_viewer
Returns an HTML + module-script snippet that embeds the Rerun Web Viewer (WASM) in a web page, pointing at a .rrd file you host. Useful for publishing playback-ready AR sessions next to your SceneView canvas in documentation, landing pages, or sample pages. Returns three views of the same embed: the bare container HTML, the <script type="module"> block, and a standalone HTML document. Optionally pins a specific Rerun viewer version and/or a time range.
explain_concept
Returns a focused, SceneView-developer-friendly explanation of a single Rerun concept: rrd file format, timelines, entity paths, archetypes (Transform3D/Points3D/Mesh3D/etc.), or the coordinate system and transform conventions. Use this to onboard developers to Rerun without them having to read the full docs.