# Hyperfy Discord - 2025-03-14

## Overall Discussion Highlights

### Procedural Generation & Terrain
- **Shiffty** shared progress on procedural terrain generation with collision detection, demonstrating a low-poly terrain system that manipulates vertices
- The system uses terrain cells (planes in Blender) that are pooled and moved around as needed
- **Ashxn** suggested implementing a `app.create('prim')` function for basic shape generation
- Discussion about creating a dedicated terrain node in core for procedural generation

### Technical Implementations
- **Valiant** demonstrated a technique for repainting/color grading images without upscaling them, useful for creating 3D facades that adapt to different visual styles
- **peezy** created a Discord integration app that broadcasts chat messages and player movement notifications from Hyperfy worlds to Discord channels
- **Mugenomics** worked on implementing a fish avatar despite lack of non-humanoid rig support by splitting the model and using scripting for animation
- **Gert-Jan Akerboom** released version 3 of a Butterfly Swarm app with improved flying behavior and UI controls for customization
- **cru** shared a UV scroll effect implementation using seamless alpha textures

### Breaking Changes & Fixes
- Recent GitHub update broke avatar station and swivel chair functionality due to changes in player ID handling
- **Shiffty** explained the fix: replace instances of `e.player` with `world.getPlayer()` in code
- Multiple browser instance limitations now require using different browsers or incognito mode for testing
- Discussion about Hyperfy v2 requiring specific Node.js versions, with recommendation to use Node Version Manager (nvm)

### Community Projects
- Racing implementation with track design discussions, referencing professional tracks like Silverstone
- Helicopter simulation in development
- Projector screens and glass effects with UV scrolling
- LiveKit integration for voice chat functionality
- Water surface implementation for aquatic environments

## Key Questions & Answers

**Q: How are you generating those random terrain meshes?** (asked by Ashxn)  
A: Using Perlin noise in an app, modified core to get access to vertices and update them. Using terrain cells (planes in blender) that are pooled and moved around as needed. (answered by Shiffty)

**Q: Why can't I open up another instance of my world in another tab?** (asked by fractilians)  
A: Due to a recent change, you'll have to use a different browser or incognito mode for the second player to avoid storage conflicts. (answered by Shiffty and Ashxn)

**Q: Depending on the objects being placed, some objects are visible even if they are far away and others are not visible unless you get closer. What is the difference?** (asked by masia02)  
A: LOD (Level of Detail) settings determine visibility at different distances. (answered by Omka)

**Q: Anyone got any good examples of interactables I could reference?** (asked by cru)  
A: Use node.onPointerEnter, node.onPointerLeave, node.onPointerDown and set those to functions for interactive things. (answered by Ashxn)

**Q: Is there support for non-humanoid rigs?** (asked by Mugenomics)  
A: No non-humanoid rigs, as far as I'm aware...yet. (answered by Valiant)

**Q: The avatar station no longer equips in my world. Was the hyp file changed or updated?** (asked by 𝕽𝖔𝖚𝖘𝖙𝖆𝖓)  
A: The recent change to player ids and events broke the original. Events don't inherently get a player object anymore. (answered by Shiffty)

**Q: Why two versions of Node?** (asked by jin)  
A: Hyperfy v2 needs a specific version for compatibility. Install nvm first to manage versions, then use it to get the right node version. Keeps things from breaking. (answered by aixvc)

**Q: How can developers send messages to Discord from Hyperfy?** (asked by peezy)  
A: Emit 'discord' event with a message parameter: `app.emit('discord', 'some_message')` to broadcast to the webhook. (answered by peezy)

## Community Help & Collaboration

- **peezy** helped **Shiffty** share procedural terrain modifications by suggesting `npx hypkg release` to make custom branch changes available to others
- **Shiffty** assisted **fractilians** with multiple instance issues by explaining recent changes and suggesting workarounds
- **peezy** provided **fractilians** with a working version of Avatar Swap Hyp compatible with current build
- **Omka** helped **masia02** understand object visibility at different distances by explaining LOD and providing documentation links
- **Ashxn** guided **Omka** on implementing teleportation with UI by explaining that UI nodes can be buttons that trigger actions
- **Valiant** assisted **Mugenomics** with implementing a fish avatar without non-humanoid rig support by suggesting creative workarounds
- **~/HowiEDuhzit** offered additional advice to **Mugenomics** about using the base VRM armature but only utilizing needed bones
- **Valiant** helped **𝚟𝚘𝚡𝚟𝚒𝚎𝚗𝚗𝚎** with adapting images to different visual styles for 3D environments
- **BallisticBanana** provided **Agent12** with reference images of professional track designs for racing implementation

## Action Items

### Technical
- Optimize procedural terrain generation with LODs and implement colliders (Mentioned by Shiffty)
- Implement primitive shape creation function (`app.create('prim')`) for basic shape generation (Mentioned by Ashxn)
- Create a terrain node in core for procedural generation (Mentioned by Ashxn)
- Integrate LiveKit for voice chat functionality (Mentioned by Omka)
- Fix Avatar Swap Hyp compatibility with current build (Mentioned by maximus)
- Update Raptor app with more ride-friendly animations (Mentioned by Valiant)
- Fix the Discord integration app that temporarily broke (Mentioned by peezy)
- Implement non-humanoid rig support in Hyperfy (Mentioned by Mugenomics)
- Fix avatar stretching issues in v2 (Mentioned by Omka)
- Implement mesh compression for Hyperfy v2 (Mentioned by vox)
- Update swivel chair code to use world.getPlayer() instead of e.player (Mentioned by Shiffty)
- Prevent butterflies from flying under the ground plane in Butterfly Swarm app (Mentioned by Gert-Jan Akerboom)
- Add toggle for original GLB visibility in Butterfly Swarm app (Mentioned by Gert-Jan Akerboom)

### Feature
- Add wall builder tools similar to Sims for easier construction (Mentioned by devilsadvocate.sol)
- Implement streaming functionality onto 3D objects for club environments (Mentioned by TheMattEmpire)
- Create a combined Hyperball, PVP and force push game mode (Mentioned by TheMattEmpire)
- Implement reverse launchpad for parachutes (Mentioned by Omka)
- Create a cat hotel in Hyperfy (Mentioned by Omka)
- Risk game implementation (Mentioned by johan)
- Allow users to upload their own butterfly wing images (Mentioned by Gert-Jan Akerboom)
- Expose more variables to the UI in Butterfly Swarm app (Mentioned by Gert-Jan Akerboom)

### Documentation
- Updated token page is in development (Mentioned by devilsadvocate.sol)
- Create a page listing NFT collections/projects with avatars (Mentioned by ii_cable_ii)
- Add avatar marketplaces to documentation (Mentioned by ii_cable_ii)
- Document the player ID and event system changes (Mentioned by Shiffty)
- Create comprehensive list/file of road assets for racing implementation (Mentioned by Agent12)