# Hyperfy Discord - 2025-05-22

## Overall Discussion Highlights

### Technical Development
- **Occlusion Culling Implementation**: Ashxn shared progress on implementing occlusion culling using pre-pass depth checking, which would significantly improve performance by skipping the rendering of objects hidden behind walls or other large structures. This feature works by marking large objects as "occluders" with a simple checkbox in the interface. (💻│developers)
- **Performance Optimization**: Discussions emphasized avoiding transparency in models for better cross-platform performance, especially for mobile/VR. Alpha-cutout was recommended as "a billion times better than alpha-blend" for optimal rendering. (🧊│3d-design)
- **Memory Optimization**: Improvements include reduced memory usage, smaller Docker images, and better server usage monitoring. Ashxn confirmed there are "zero memory leaks" currently known in the system. (🧊│3d-design, 💻│developers)

### Animation & 3D Model Issues
- **Root Bone Implementation**: Extensive discussion about proper setup of root bones for character animations, with several users encountering problems with IK (Inverse Kinematics) and foot-planting where feet would slip instead of properly connecting with the ground. (💻│developers)
- **Animation Capabilities**: Clarification that v2 currently only supports animating GLBs with bones, unlike v1 which had broader animation capabilities. (💻│developers)
- **Decentraland Model Compatibility**: Issues identified with some Decentraland models that use external textures causing rendering failures. Models appear white or pink in local worlds, indicating missing materials or textures. (🐞│issues)

### Platform Features & Integration
- **App Communication**: Discussion about the event-based approach to app communication rather than direct object access, designed for security and simplicity. (💻│developers)
- **Portal Functionality**: Information shared about implementing portals to specific locations within scenes. (💻│developers)
- **File Format Utility**: Explanation of .hyp files versus .glb files - .hyp files contain scripts that automatically convert Decentraland colliders to Hyperfy colliders, making them more user-friendly. (⚡│general)

### Community & Ecosystem
- **Collaborative Building**: Interest in events where multiple users can build together in real-time with spectators, potentially including "Builder Royale" competitions. (⚡│general)
- **Content Management**: Ideas for implementing "deleters" or "janitors" to prevent worlds from becoming too resource-intensive. (⚡│general)
- **HYPER Token Utility**: Ashxn explained that the platform is "hyper centric" where creators can forge objects only with HYPER, and builders/collectors trade using HYPER. (🪙│hyper)
- **Documentation Migration**: Community recordings being migrated to a new YouTube channel, and hyperfy.how has been moved to docs.hyperfy.xyz. (⚡│general, 🐞│issues)

## Key Questions & Answers

**Q: Would occlusion culling be set up manually or automatically?** (TheMattEmpire)  
A: You mark big objects like walls and houses as "occluders" and it automatically tests everything else to see if it's hidden behind them. (Ashxn)

**Q: Is occlusion culling based on the asset or the collider?** (TheMattEmpire)  
A: It's based on the asset. (Ashxn)

**Q: Is there an easy way to get app object info similar to world.getPlayer/s?** (0mka)  
A: No, apps can't do that. If two apps want to communicate, use events by design. (Ashxn)

**Q: What about audio/video loops? Any memory leak worries there?** (0mka)  
A: There are zero memory leaks that I'm aware of at the moment. (Ashxn)

**Q: Can I add a portal to a specific place of my scene?** (carlosmu)  
A: For v1, you give the place app a name and then use hyperfy.io/world?place=NAME in the browser. (maximus)

**Q: Am I missing something in regards to animating a scene GLB similar to v1?** (emotionull)  
A: We don't have that yet. You can only animate GLBs that have bones in v2 for now. (Valiant and ᲼~/^b0gie-(.*)$/)

**Q: Any reason to use hyp instead of just a glb?** (HypPrivakos - HyperWorld.Host)  
A: Hyp files contain scripts that convert DCL colliders to Hyperfy colliders automatically, making them more user-friendly. (Lastraum)

**Q: Is hyperfy.how offline?** (Reneil)  
A: Yes, it's been moved to docs.hyperfy.xyz. (maximus and 𝕽𝖔𝖚𝖘𝖙𝖆𝖓)

**Q: Why do .hyp files from dcl-iwb.co display as white or pink objects?** (Gert-Jan Akerboom)  
A: Some Decentraland-created files have external textures causing rendering issues. (Lastraum)

**Q: How is HYPER used in the platform?** (implied question)  
A: Creators can forge objects only with HYPER and builders/collectors trade them using HYPER. (Ashxn)

## Community Help & Collaboration

- **Animation Root Bone Issues**: peezy shared a GitHub repository with a script for programmatic root bone addition (https://github.com/saori-eth/mixamo-hyperfy-converter) to help carlosmu with animation issues. ᲼~/^b0gie-(.*)$/ clarified that "hips don't/shouldn't be connected to the root" for proper setup.

- **Finding Animations**: ᲼~/^b0gie-(.*)$/ shared a working link to hyperfy-animations.vercel.app to help multiple users locate animations.

- **Custom Animation Tutorial**: TheMattEmpire shared a tutorial link with carlosmu and suggested "root_bone" should be "root" to fix custom animation issues.

- **Decentraland Model Extraction**: Lastraum provided a resource to help ~/drdoge.eth extract GLB models from Cryptovoxels world JSON.

- **Drag-and-Drop Implementation**: HypPrivakos - HyperWorld.Host provided a React code snippet for implementing drag-and-drop functionality for .hyp files after discussing the feature with Lastraum.

- **Decentraland Model Rendering Fix**: Lastraum updated the dcl-iwb.co site to recognize .glb files with external textures and prevent problematic .hyp downloads, effectively addressing rendering issues reported by Gert-Jan Akerboom and 0mka.

## Action Items

### Technical
- Implement occlusion culling for performance optimization by marking large objects as "occluders" to skip rendering hidden objects. (Ashxn)
- Fix animation root bone issues by ensuring proper setup where hips aren't connected to root. (᲼~/^b0gie-(.*)$/)
- Add footstep sounds to character animations, considering using collision detection to trigger appropriate surface sounds. (Mugenomics)
- Optimize event-based communication between apps using emit/send and on listeners instead of direct object access. (Ashxn)
- Avoid transparency in models for better cross-platform performance, especially for non-desktop, using alpha-cutout instead of alpha-blend. (maximus)
- Implement performance improvements to reduce memory usage, create smaller Docker images, and monitor server usage. (maximus)
- Update dcl-iwb.co to identify .glb files with external textures and prevent problematic .hyp downloads. (Lastraum)
- Create a script to identify models with external textures to detect and hide problematic models from the site. (Lastraum)

### Documentation
- Migrate community meeting recordings to a new YouTube channel. (Ashxn)
- Update references from hyperfy.how to docs.hyperfy.xyz to ensure users are directed to the correct documentation site. (maximus)

### Feature
- Support animating GLBs without bones to add support for animating objects without armature similar to v1. (emotionull)
- Implement portal functionality for v2 to allow teleporting to specific locations within scenes. (carlosmu)
- Organize collaborative building events with spectators. (Gert-Jan Akerboom)
- Create a "deleter" or "janitor" agent to clean up worlds on a schedule. (0mka)
- Implement "Builder Royale" or "Battle of the Builders" competitions. (TheMattEmpire)
- Develop DJ event space. (TheMattEmpire)
- Improve VR interactions for enhanced virtual reality experience. (maximus)
- Continue housing kit development by experimenting with theme kit concept. (maximus)