# Hyperfy Discord - 2025-02-13

## Overall Discussion Highlights

### Technical Development
- **LOD Implementation**: Ashxn demonstrated significant performance improvements by adding three LOD levels to fence models, reducing GPU load and maintaining 60fps. HowieDuhzit announced LOD support in Blender Hyperfy Tools, allowing meshes named in the format objectLOD0, objLOD1, etc. to be recognized as LODs.
- **Animation Handling**: Developers shared code for implementing animations from Mixamo, with discussions about optimizing file sizes and handling in-place animations. Recommendations included setting sampling rate to 2-3 and using the optimize animations button.
- **Performance Monitoring**: Ashxn introduced a new inspection tool that tracks asset metrics like geometries, triangles, and texture memory to help optimize worlds.
- **Vehicle Mechanics**: Several developers attempted to create rideable vehicles, discovering limitations in the current API regarding player anchoring. Discussions covered collision detection, trigger events, and player control mechanisms.
- **Self-Hosting Solutions**: Community members shared deployment options for self-hosting Hyperfy, with fly.io emerging as a popular solution. Saori provided a simplified deployment process using fly.io.

### Platform Architecture
- **Multi-script Apps**: Discussion about component-based architecture similar to Unity, with questions about whether multi-script apps would be supported.
- **Core Modifications**: Peezy introduced "hucow" (Hyperfy User Core OverWrites), a CLI tool enabling users to share and apply core changes to the Hyperfy repository easily.
- **Development Process**: Ashxn explained their approach to feature development without rigid sprint structures. Features are built on dev branch and pushed to main when considered stable.

### Asset Creation & Optimization
- **Avatar Formats**: Debate between custom Hyperfy avatar format to support wearables versus maintaining VRM compatibility. The discussion highlighted challenges of implementing wearables without standardized attachment points or "sockets."
- **Optimization Techniques**: Participants noted how reducing texture resolution from 2-4K to 1K dramatically improved performance and memory usage.
- **Building Tools**: Discussion about snap points visualization for easier building, with suggestions for UI indicators to make them clearer.

### AI & Agents
- **Agent Implementation**: drdoge.eth reported successfully implementing an agent in a "rover/collectron" system, with Ashxn mentioning an upcoming "capsule controller."
- **LLM Integration**: Discussion about using Venice as an alternative LLM provider by changing the chat endpoint, and potential integration with Fleek.xyz/eliza.

### Marketplace & Tokenomics
- **Token Utility**: Szjanko announced upcoming Hyper token utility features for the marketplace, allowing creators to receive tips directly.
- **Aptos Horizon Program**: Maximus shared information about a blockchain initiative selecting teams with validated MVPs willing to migrate to the Aptos blockchain.

## Key Questions & Answers

### Development & Technical
- **Q**: How do I set up triggers in Hyperfy?  
  **A**: Use the rigidbody parent with a child collider marked as trigger, then use onTriggerEnter and onTriggerLeave events on the rigidbody.

- **Q**: How do I teleport a player in Hyperfy?  
  **A**: Use world.getPlayer().teleport(position) on the client side.

- **Q**: How do I control player input in Hyperfy?  
  **A**: Use app.control() to access key events with methods like control.keyW.capture and control.keyW.onPress.

- **Q**: How do I set collision in Hyperfy V2?  
  **A**: Use the Hyperfy addon in Blender, which handles it for you.

- **Q**: How do I set up LODs manually?  
  **A**: Create an empty with `node=lod` custom property, add meshes as children with `maxDistance=number` property.

- **Q**: Why do all signposts update when I change one signpost's name?  
  **A**: This is expected behavior. You can press U in build mode to unlink them, and a setting for auto-unlinking duplicated apps is planned.

- **Q**: Why does clicking in UI text fields reload the app?  
  **A**: Every config change rebuilds the entire app to prevent corruption and allow fixes.

### Platform & Infrastructure
- **Q**: Can Venice be used instead of other LLM providers?  
  **A**: Yes, you'd just need the chat endpoint to point to Venice instead of Eliza/other LLM providers.

- **Q**: Is everything about hyperfy v2 on the hyperfy.how website?  
  **A**: Yes, it's pretty much all there. Omka combined community docs with the API reference.

- **Q**: How is Hyperfy evolving in terms of development cycles?  
  **A**: Features are built on dev branch and pushed to main when considered stable. Ash piles up commits and pushes to main at his discretion.

- **Q**: Can Hyperfy run on shared website hosting with nodejs?  
  **A**: Try and see - there are hundreds of different web hosting providers with their own quirks.

## Community Help & Collaboration

- **Trigger Events Setup**: Ashxn helped Shiffty by providing code examples showing how to structure hierarchy with rigidbody parent and trigger collider child.

- **Player Teleportation**: Peezy assisted ToxSam with code examples using world.getPlayer().teleport() on client side for teleporting players to specific positions.

- **UI Bug Resolution**: Ashxn helped MetaMike fix an issue with the edit code window not appearing by suggesting deletion of the "pane" entry in local storage.

- **Shadow Casting for Flat Objects**: Gert-Jan Akerboom demonstrated to treed that flipping normals in Blender (red side up) allows flat objects to cast shadows.

- **Documentation Navigation**: Saori directed treed to hyperfy.how which contains combined community docs and API reference.

- **Self-Hosting Deployment**: Saori provided Tim/TC with step-by-step instructions for deploying Hyperfy on fly.io, which 0mka later expanded into updated documentation.

- **LOD Implementation in Blender**: HowieDuhzit released an update to Hyperfy Tools with LOD support using a specific naming convention, benefiting the entire community.

## Action Items

### Technical
- Implement anchors for player mounting on vehicles (Ashxn)
- Fix player movement freezing when using WASD controls (peezy)
- Add root bone to .glb animations to avoid clogging devtools (MetaMike)
- Optimize animations by setting sampling rate to 2-3 and ticking optimize animations button (Ashxn)
- Create a script to auto-categorize animations in folders (peezy)
- Visualize snap points with UI indicators to make them clearer (TheMattEmpire)
- Create sign posts for tagging houses (Ashxn)
- Fix random disconnects on play world by updating server idle timeout (Ashxn)
- Implement authentication system with ETH & Solana login to prevent griefing (Saori)
- Create role-based and model-based security (maximus)
- Add setting to make certain apps auto-unlink when duplicated (ash)
- Add PRNG functionality for persistent randomization across app rebuilds (ash)
- Investigate wallet connection issues on mobile (MetaMask and Crossmint) (𝕽𝖔𝖚𝖘𝖙𝖆𝖓)
- Test different LOD configurations for optimal performance vs. visual quality (TheMattEmpire)
- Explore standardizing "sockets" or attachment points for wearables and weapons (TheMattEmpire)
- Implement merge conflict handling for hucow (peezy)
- Open the hucow CLI so anyone can publish core changes (peezy)
- Try deploying Hyperfy on both shared hosting and VPS with Cloud Panel (tunelight)
- Investigate how to change fly.io app name without starting from scratch (𝕽𝖔𝖚𝖘𝖙𝖆𝖓)

### Feature Development
- Implement compass with points of interest that apps can add/remove (Ashxn)
- Create system app for skybox, base environment and default avatar (Saori)
- Add marketplace functionality for app creators to receive tips (szjanko)
- Create a 'Volume' tool for build permissions, swimming areas, and custom HDRs (TheMattEmpire)
- Add builder role forum channel allowing top posts to be upvoted by builders (MetaMike)
- Consider custom Hyperfy avatar format for wearables support (Ashxn)
- Implement ability to group/parent objects together in world (devilsadvocate.sol)
- Add multi-select capabilities for in-world editing (TheMattEmpire)
- Create system for combining assets with same material to reduce draw calls (TheMattEmpire)
- Share dice asset (Omka)
- Capsule controller development for agent interaction (Ashxn)
- Explore Fleek integration for ENS hyperfy and pinning via arweave/ipfs (Omka)

### Documentation
- Update documentation for app.control() API (Ashxn)
- Document performance metrics in the new inspection tool (Ashxn)
- Organize and systematize documentation to make it clearer and more accessible (treed)
- Add internationalization to hyperfy.how to allow site language to be changed (Omka)
- Create low poly optimization documentation (scoe)
- Develop best practices for rotation and snap points (TheMattEmpire)
- Take screenshots during deployment process to add to community documentation (maximus)
- Update fly.io deployment guide with personalized URL information (𝕽𝖔𝖚𝖘𝖙𝖆𝖓)
- Release medium article about apps vs mods (general hyper)