# Hyperfy Discord - 2025-04-02

## Overall Discussion Highlights

### Development & Technical Topics
- **Vertex Colors in 3D Models**: Discussion on properly exporting vertex colors from Blender and their use for creating gradient effects while minimizing draw calls.
- **Animation & Skinned Meshes**: Gert-Jan Akerboom worked on implementing skinned mesh animations and static animation frames for plant models, seeking ways to display random frames from a sequence.
- **Movement Mechanics**: Debate about whether movement mechanics like "slide" should be in core platform or as optional apps. Peezy demonstrated a dash mechanic allowing double-dashing and dash-jumping.
- **VRM Model Fixes**: Ash shared a technical solution for VRM models where the rest pose isn't properly T-posed, providing step-by-step instructions.
- **Multi-LLM Feedback Loops**: Maximus described using multiple LLMs to refine prompts and critique outputs, creating iterative improvement cycles for AI agent workflows.
- **Screen Overlays**: Technical implementation of screen overlays using color filters with opacity and image overlays, utilizing control.screen properties.

### Projects & Showcases
- **pew.bet Game**: Saori shared this project and requested testing help for lag issues. Community members provided feedback noting smooth performance with minor control issues.
- **Hyperling/Hyperion Character**: Ash introduced a new character model to the community.
- **Cart Model Improvements**: General Hyper discussed adding snap points for stacking and potentially adding status screens to cart models.
- **Road Texture Variants**: TheMattEmpire plans to develop texture variants including "simple," "tron," and "rainbow road" styles.
- **DAPPCRAFT Project**: Received praise from several members for building quality.

### Technical Issues
- **Storage Limit Problem**: A user couldn't save GLB files despite them appearing to render correctly, diagnosed as a container storage limit issue.
- **Skinned Mesh Interaction**: Gert-Jan Akerboom couldn't click, duplicate, or destroy skinned mesh animation apps through normal means due to GPU rendering limitations.
- **HTTPS Configuration**: Mio encountered issues setting up HTTPS for Hyperfy on Digital Ocean, resolved through proper CloudFlare and Nginx SSL certificate configuration.

### Announcements
- **Community Meeting**: Upcoming Hyperfy Community Meeting announced, highlighting recent developments including Gizmo tool, new camera switch app, PvP avatars, pets functionality, mesh color changer, and FPS arena development.

## Key Questions & Answers

**3D Design & Modeling**
- **Q**: Shouldn't a single mesh with vertex colors only be one draw call even if it's 2 colors?  
  **A**: Yes, vertex colors are just geometry attributes, but Blender requires specific export settings.

- **Q**: Is it possible to pull the model from a hyp?  
  **A**: Shift clicking the Model button should download it, but sometimes doesn't work. Alternatively, use Hyperfy Tools to import hyp and export model.

- **Q**: Can you add snaps in code too?  
  **A**: Yes, this is possible.

**Development & Technical**
- **Q**: Does firebolt need everything in one file for performance?  
  **A**: No, it's not for speed, you can import from anywhere.

- **Q**: How do I check if I am running the latest dev?  
  **A**: Use git commands like 'git checkout dev', 'git status', and 'git pull'.

- **Q**: Is it possible to reference the spawn position in a hyp object code?  
  **A**: It's 0,0,0 by default, but there's no getter for custom spawn positions yet.

- **Q**: What is the ideal size/dimensions for images in app UI?  
  **A**: Square, 256 or 512 pixels.

- **Q**: Why can't I click, duplicate, or destroy my skinned mesh animation app?  
  **A**: You can't right-click skinned meshes because they're rendered on the GPU, making it difficult to track mesh position during animation. Add an invisible box to receive events instead.

- **Q**: Why can't we use Math.random()?  
  **A**: It was initially restricted due to non-determinism concerns but has been added back.

- **Q**: Do world owners get access to server logs?  
  **A**: Not right now but planned for the future.

**UI & Visual Effects**
- **Q**: How are you getting your screen overlays?  
  **A**: Using a basic color with opacity as the base for color filters, then using images as overlay filters. Use control.screen.width and control.screen.height to fit properly on screen.

**AI & Agents**
- **Q**: How can multiple LLMs be used to improve prompts?  
  **A**: By using different LLMs to refine prompts, selecting the best one, and having other LLMs critique the results to identify gaps.

- **Q**: What's missing for truly agentic workflows?  
  **A**: The ability for LLMs to validate scripts independently, completing the feedback loop without human intervention.

## Community Help & Collaboration

1. **pew.bet Game Testing**  
   Saori developed the game and needed testing to verify lag fixes. Multiple community members tested it, with CheddarQueso confirming it was "smooth as eggs" despite a minor camera control issue.

2. **Git Branch Management**  
   Peezy and 0mka helped Gert-Jan Akerboom understand Git branches and running dev world by providing Git commands and explaining branch structure.

3. **HTTPS Configuration**  
   Ash and peezy helped mio set up HTTPS for Hyperfy on Digital Ocean by explaining CloudFlare proxy configuration and SSL certificate setup.

4. **VRM Model Fixing**  
   Ash provided step-by-step instructions to fix VRM models with improper rest poses by using pose mode, shifting to proper T-pose, and applying visual transform to pose.

5. **Cart Model Improvements**  
   General Hyper offered to swap in an updated cart model for peezy, while peezy suggested adding snap points to the top of the rack for easy stacking.

6. **Storage Limit Resolution**  
   HypPrivakos fixed a container storage limit issue that was preventing a user from saving GLB files in their world.

7. **Multi-LLM Workflow Sharing**  
   Maximus shared his method of using multiple LLMs for prompt refinement and introduced the jintern project concept to Ricky.

## Action Items

### Technical
- Fix shift-clicking Model button to download models (mentioned by ash)
- Add getter method for custom spawn positions (mentioned by ash)
- Fix continuous camera movement without requiring mouse button hold in pew.bet (mentioned by CheddarQueso 🧀)
- Complete the feedback loop for LLMs to validate scripts independently (mentioned by Ricky)
- Add invisible collision boxes to skinned mesh objects to enable interaction (mentioned by ash)

### Features
- Map creation functionality for pew.bet game (mentioned by Pete)
- Add player.setRole method to allow setting custom roles with permissions (mentioned by general hyper)
- Add permission controls: canBuild, canScript, canBeDamaged, canRunCommands (mentioned by general hyper)
- Support for static animation frames to allow setting specific animation frame without playing animation (mentioned by Gert-Jan Akerboom)
- Create an app that allows hosts to toggle various player movement mechanics (mentioned by TheMattEmpire)
- Add snap points to the top of the cart rack for easy stacking (mentioned by peezy)
- Shorten the depth of the cart or add snaps in the back for peripherals (mentioned by general hyper)
- Use the green square on the front of the cart as a status screen with buttons (mentioned by general hyper)
- Implement multi-LLM feedback systems where multiple LLMs refine prompts and critique each other's outputs (mentioned by maximus)
- Develop "Hyper-jintern" service that provides organizational best practices feedback on user code (mentioned by maximus)
- Texture variants for roads: simple, tron, rainbow road (mentioned by TheMattEmpire)
- Dirt sections for motocross ramps (mentioned by TheMattEmpire)
- Additional themed road variants: Christmas roads, vandalized Tesla stations, obstacle courses, bumper car arenas (mentioned by CheddarQueso 🧀)

### Documentation
- Update quickstart guide to clarify dev branch setup process (mentioned by 0mka)
- Document the fix for VRM models with improper rest poses (mentioned by ash)
- Implement server logs access for world owners (mentioned by HypPrivakos - HyperWorld.Host)