# Hyperfy Discord - 2025-03-13

## Overall Discussion Highlights

### Technical Development
- **Model App Development**: Ashxn created a Model app that allows importing any GLB file with toggleable collision and scale input, similar to v1 functionality, requiring geometry sharing additions to the core.
- **Particle System**: Ashxn developed a CPU-based particle system to replace UI nodes, offering collision capabilities and easier AI prompting.
- **Procedural Generation**: Shiffty demonstrated procedural terrain generation using Perlin noise, modifying core functionality to access and update vertices.
- **Discord Integration**: Peezy shared a webhook integration that broadcasts player entry/exit events and chat messages from Hyperfy worlds using `app.emit('discord', 'message')`.
- **Breaking Change**: A recent GitHub update changed how player IDs and events work - events no longer inherently receive a player object, breaking functionality for avatar stations and interactive objects.

### Creative Projects
- **Butterfly Animation**: Gert-Jan Akerboom developed a butterfly swarm app (v3) with improved flying behavior and customizable parameters including butterfly amount, scale ranges, wingflap-speed ranges, and fly-speed ranges.
- **Portal System**: 0mka shared updates to a portal system with expanded UI width/height ranges and improved UI position field type.
- **AI Integration**: A parenting challenges app was shared that uses 10 AI agents to provide method-specific approaches, with PDF guide generation capabilities.

### Optimization Techniques
- **Model Instancing**: Detailed discussion about instancing in Hyperfy V1 vs V2. In V1, manual instancing using gltf-transform functions is needed, while V2 automatically instances linked duplicates.
- **AI-Generated Textures**: Paradoxx shared detailed prompts for creating cyberpunk building facades using Krea.ai, while Valiant demonstrated Krea's scene transfer feature for color grading.

### Documentation & Resources
- **AI Guides**: Omka shared links to Hyperfy guides about AI agents and mentioned plans to update guides on coding with AI and adding "super prompts".
- **Avatar Resources**: Community members shared resources for avatar marketplaces and guides, which Omka compiled into documentation pages.

## Key Questions & Answers

### Technical Implementation
- **Q**: How does instancing work in Hyperfy V1 vs V2?  
  **A**: In V1, you need to manually instance using gltf-transform functions, while V2 automatically instances linked duplicates.

- **Q**: Do textures/images instance in Hyperfy or still use all the data every time?  
  **A**: World building auto-instances everything; players only download models once even if used multiple times.

- **Q**: How can I connect to a Docker PostgreSQL container for admin tasks without exposing ports?  
  **A**: Partially answered with suggestions to use Tailscale or place pgAdmin in another Docker container.

- **Q**: Why can't I open another instance of my world in another tab?  
  **A**: Due to a recent change, you need to use a different browser or incognito mode for the second player.

### 3D Design & Animation
- **Q**: How can I make butterflies rotate as complete objects rather than individual wings?  
  **A**: Use an empty container in Blender with the wing planes inside, then handle flapping in local coordinates and move the empty in the forward direction.

- **Q**: Is there support for non-humanoid rigs?  
  **A**: No native support yet, but you can use the base VRM armature and only utilize needed bones while ignoring the rest.

### Platform Features
- **Q**: Can I disable flying for my world?  
  **A**: Flying is only enabled in build mode.

- **Q**: How do you set portal destinations?  
  **A**: When you have inspect pane of the portal open, go with your character to where you want the portal to trigger to, and click 'Set' in the inspect pane.

- **Q**: Why does the avatar station no longer equip in my world?  
  **A**: Recent changes to player IDs and events broke the original. Events don't inherently get a player object anymore. Replace `e.player` with `world.getPlayer()`.

## Community Help & Collaboration

### Technical Problem Solving
- **Butterfly Animation**: Ashxn helped Gert-Jan Akerboom with rotating butterflies as complete objects by suggesting using an empty container in Blender with wing planes inside.

- **Breaking Changes Fix**: Shiffty helped 𝕽𝖔𝖚𝖘𝖙𝖆𝖓 with broken avatar station and swivel chair functionality by explaining the breaking change and suggesting replacing `e.player` with `world.getPlayer()`.

- **Math Function Fix**: Ashxn helped Saori when Math.sqrt broke in a procedural city app by pushing a fix that enables all Math functions properly.

### Resource Sharing
- **Avatar Resources**: ii_cable_ii shared multiple marketplace links including Vket, BOOTH, Jinxxy, and Vroid Hub, which Omka compiled into documentation.

- **AI Texture Generation**: Paradoxx shared detailed prompts for creating cyberpunk building facades with Krea.ai when voxvienne asked for good frontal view facades.

- **Model Instancing**: voxvienne shared a specific gltf-transform script to instance GLB files after creating linked duplicates in Blender to help Paradoxx optimize models.

- **Voice Technology Research**: maximus shared Sesame's research on "Crossing the Uncanny Valley of Voice" with Omka.

## Action Items

### Technical
- Implement primitive shape creation (`app.create('prim', { type: 'cone' })` etc.) for easier development (Ashxn)
- Add `player.route('instance')` functionality for routing players between instances (Saori)
- Optimize procedural terrain with LODs and colliders (Shiffty)
- Fix avatar swap hyp to work with current version (maximus)
- Get MCP server working via Claude desktop interface (Ricky)
- Implement mesh compression for v2 (vox)
- Update avatar station and swivel chair HYP files to use `world.getPlayer()` instead of `e.player` (Shiffty)
- Prevent butterflies from flying under the ground plane in butterfly swarm app (Gert-Jan Akerboom)
- Add toggle for original GLB visibility in butterfly swarm app (Gert-Jan Akerboom)
- Implement PDF creation for parenting challenges app (Rick)
- Implement paywall options for parenting challenges app (Rick)

### Documentation
- Document how to use CPU-based particle system (Ashxn)
- Update AI agents guide with in-world agent information (Omka)
- Update coding with AI guide (Omka)
- Add community super prompts to AI prompts guide (Omka)
- Update Hyperfy.how with new V2 world screenshots (Omka)
- Update token page with current information (devilsadvocate.sol)
- Create table of NFT collections/projects with avatars (ii_cable_ii)
- Document the breaking change regarding events no longer inherently receiving player objects (Shiffty)

### Feature
- Add wall builder tools similar to Sims (devilsadvocate.sol)
- Implement global queue feature for match-based games (Knar)
- Add vec3 field type for rotation and scale (Ashxn)
- Create rideable people functionality similar to rideable raptors (Ashxn)
- Support for non-humanoid rigs (Mugenomics)
- Allow users to upload their own wing images for butterfly swarm (Gert-Jan Akerboom)
- Expose more variables to the UI for butterfly swarm app (Gert-Jan Akerboom)
- Build stations and interactive objects for parenting challenges app (Rick)
- Add affiliate marketing to the stations for parenting challenges app (Rick)
- Implement agent functionality for parenting challenges app (Rick)
- Explore Krea.ai scene transfer for matching building textures to skyboxes (Valiant)