# Hyperfy Discord - 2025-08-05

## Overall Discussion Highlights

### Development Architecture
- **Client-Server Execution**: Detailed discussions about how scripts execute on both server and client sides in Hyperfy. Server-side code continues running even when no users are connected, enabling persistent world simulations.
- **Context-Specific Code**: Developers shared techniques for differentiating execution context using `world.isClient` and `world.isServer` checks.
- **Local Development**: Conversations about implementing local apps for better version control and handling larger builds.

### 3D Design & Optimization
- **Mesh Optimization**: Solutions for the confetti popper app where multiple instances were sharing states unintentionally. The fix involved unlinking meshes using `mesh.linked = false`.
- **Window Transparency**: Technical approaches to making windows not cast shadows while allowing light through, with solutions involving the Hyperfy Blender plugin.
- **Model Compression**: Workflow recommendations using gltf.report for VRAM optimization followed by gltf-compressor for texture compression.

### UI Improvements
- **Interactive Elements**: Discussions about cursor state changes for interactive objects and upcoming features including a new color picker.
- **Primitive Shapes**: Mention of upcoming primitive shapes with textures.

### Infrastructure & Deployment
- **Git Issues**: Several users encountered Git-related problems when updating Hyperfy installations, with the community providing solutions involving `git stash`, `git pull --rebase`, and other commands.
- **Fly.io Deployment**: Discussions about best practices for using fly.io with Hyperfy, including making a fork first to avoid accidental contributions.

### Future Technology
- **Hologram Integration**: Conversation about Hyperfy's role in relation to emerging hologram technology, with clarification that Hyperfy builds the infrastructure layer while holograms are just another display technology.
- **AI Content Generation**: Discussion of Google's Genie 3 AI model for world generation and its limitations compared to true 3D world creation.

## Key Questions & Answers

**Q: How can the app still be updating if no one is in the world?**  
A: Code runs on both the server and the clients. The server is always running so you can have things like plants growing over time. (Ashxn)

**Q: Is there a way for the server to know when a client has left and stop doing something?**  
A: Yes, using `world.on('leave', e => {})` event handler on the server. (Ashxn)

**Q: Why are states shared across multiple instances of the same app?**  
A: Duplicated apps share the same materials for optimization; you need to unlink them with `mesh.linked = false`. (.hyp shaman and Valiant)

**Q: Does anyone know how to make windows not cast a shadow and allow light through in world?**  
A: Disable castShadows and receiveShadows properties using the Hyperfy Blender plugin. (Ashxn)

**Q: How do I fix Git conflicts when updating Hyperfy?**  
A: Use "git stash" to save local changes, then "git pull --rebase", and "git stash apply" to reapply your changes. (Shiffty)

**Q: What is the role of hyperfy in a world where holograms are a reality?**  
A: Hyperfy is building the infrastructure layer - the servers, networking, physics, social systems, and creator tools. Holograms are just another display technology. (Natefrog)

## Community Help & Collaboration

1. **Server-Client Execution Help**  
   Ashxn helped Lastraum understand how scripts run on both server and client with code examples for context-specific execution, enabling proper implementation of the Audius music app.

2. **Mesh Linking Solution**  
   .hyp shaman and Valiant helped Gert-Jan Akerboom resolve issues with the confetti popper app by explaining how to unlink meshes with `mesh.linked = false` and providing specific code examples.

3. **Window Transparency Implementation**  
   Ashxn provided 𝕽𝖔𝖚𝖘𝖙𝖆𝖓 with an elegant solution for window transparency by using the Hyperfy Blender plugin to disable both castShadows and receiveShadows properties, after vox had suggested flipping normals (which affected collision properties).

4. **Git Conflict Resolution**  
   Multiple community members (ash, 𝕽𝖔𝖚𝖘𝖙𝖆𝖓, and Shiffty) collaborated to help BallisticBanana resolve Git merge conflicts during a Hyperfy update, providing a workflow using git stash and rebase commands.

5. **3D Model Optimization**  
   Valiant shared a comprehensive workflow for optimizing 3D models, recommending using gltf.report first for VRAM optimization, followed by gltf-compressor for texture compression.

## Action Items

### Technical
- Optimize Audius music app to handle server/client execution properly (Lastraum)
- Implement window transparency by disabling castShadows and receiveShadows properties (Ashxn)
- Use gltf.report followed by gltf-compressor for optimal model compression (Valiant)
- Fix Git merge conflict using stash and rebase approach (Shiffty)
- Investigate world not opening issue despite normal server logs (.hyp shaman)
- Auto-unlink meshes when material properties are modified (Ashxn)
- Update app to run only on client side (Lastraum)

### Documentation
- Document the Hyperfy Blender plugin functionality and installation (Ashxn)
- Create clearer update instructions for non-technical users to avoid Git conflicts (ash)

### Feature
- Implement cursor state changes for interactive objects (Gert-Jan Akerboom)
- Add ability to change cursor appearance when hovering over interactive elements (Gert-Jan Akerboom)
- Implement local apps for better version control and larger builds (Ashxn)
- Add AI integration for text-to-app generation within worlds (Ashxn)
- Add new primitive shapes with textures and color picker (Ashxn)
- Add finer precision control for object positioning (beyond tenths to thousandths) (vox)
- Develop easier update solution for non-technical users that avoids Git complexities (ash)
- Implement confetti popper effect (Gert-Jan Akerboom)