Skip to content

Traits Reference

HoloScript includes a large, evolving trait inventory across multiple categories and domains. Traits are declarative annotations that add behavior to objects without writing code.

How Traits Work: Trait inventory changes as new domains are absorbed. For live counts, inspect packages/core/src/traits/ and use list_traits through MCP.

How Traits Work

holo
object "Ball" {
  @grabbable(grab_distance: 0.5)
  @physics(mass: 1.0, bounciness: 0.7)
  geometry: "sphere"
  position: [0, 2, 0]
}

All traits follow the TraitHandler pattern:

typescript
interface TraitHandler<TConfig> {
  name: VRTraitName;
  defaultConfig: TConfig;
  onAttach?: (node, config, context) => void;
  onDetach?: (node, config, context) => void;
  onUpdate?: (node, config, context, delta) => void;
  onEvent?: (node, config, context, event) => void;
}

Trait Categories

| Category | Traits | Description | | ---------------------------------------- | ---------------------------------------------------------------------- | -------------------------------------------------- | --- | ------------------------------------- | ------------------------------------------------------------ | --------------------------------------------- | | Interaction | @grabbable, @throwable, @clickable, @hoverable, @draggable, @scalable | Hand-based interaction in VR | | Physics | @physics, @collidable, @cloth, @fluid, @soft_body, @rope | Physics simulation | | AI & Behavior | @behavior_tree, @goal_oriented, @llm_agent, @perception, @emotion | Intelligent agent behavior | | AI Autonomous | @autonomous, @swarm, @scheduler, @decision_tree | Autonomous system behaviors | | Audio | @spatial_audio, @music, @sfx, @voice | Spatial and ambient audio | | Accessibility | @screen_reader, @high_contrast, @motor_assist | Universal design traits | | AR/Spatial | @spatial_awareness, @anchor, @plane_detection, @billboard | Augmented reality | | Web3/Blockchain | @token_gated, @wallet, @nft, @smart_contract, @zora_coins | Blockchain integration | | Render Network | @render_network | Decentralized GPU rendering via RNDR | | OpenXR HAL | @openxr_hal | XR device abstraction (haptics, hand/eye tracking) | | Media | @video, @screen, @360_video, @live_stream | Media playback | | Social/Multiplayer | @networked, @voice_chat, @presence, @avatar | Social and multiplayer | | IoT/Integration | @sensor, @actuator, @mqtt, @rest_api | IoT and external integrations | | Visual | @material, @lighting, @shader, @particle, @lod | Graphics and rendering | | Advanced | @animation, @ik, @ragdoll, @procedural, @hitl | Advanced animation, generation, and HITL gates | | Economics / Web3 | @wallet, @nft_asset, @token_gated, @marketplace, @zora_coins | On-chain economies, NFT minting, token gating | | Security / ZK | @zero_knowledge_proof, @zk_private, @rsa_encrypt, @audit_log | Cryptographic privacy, ZK proofs, tamper logs | | AI Generation | @stable_diffusion, @neural_forge, @ai_texture_gen, @diffusion_realtime | Generative AI: textures, meshes, shaders | | Human-in-the-Loop | @hitl, @feedback_loop, @biofeedback | Human oversight, biometric feedback, RLHF gates |

Wisdom/Gotcha Atoms Navigation

ResourceLinkPurpose
Batch 1 RFCWISDOM_GOTCHA_ATOMS_BATCH1_RFCFull spec + semantics + compiler checks for substrate atoms
20 Atom Reference EntriesTRAITS_REFERENCECommit-ready signatures, gotchas, and validation rules
Canonical Democanonical-atoms-demo.holoCross-domain demo using 8 atoms together
Governance Companion Demogovernance-atoms-demo.holoFocused demo for governance atoms 11-15

Extending Traits

Build your own custom traits using the Trait Extension Guide.

API Reference

Released under the MIT License.