# Hyperfy Discord - 2025-02-25

## Overall Discussion Highlights

### Development Tools & Infrastructure
- **App-Rollup Tool**: MayD524 created a Rollup configuration that enables developers to work with multiple files instead of a single app.js file, significantly improving code organization. The tool bundles separate files into one deployable app.js file.
- **Animation Repository**: Saori created a repository of animations for avatars with a web interface (hyperfy-animations.vercel.app) that allows developers to easily find and implement animations.
- **Electron App Tool**: MayD524 shared a tool for creating Electron apps that point to Hyperfy worlds, allowing for desktop applications that cache world files locally, reducing download times for repeat visits.
- **Client-Server Improvements**: Ash implemented a significant change allowing any client to connect to any server by having servers send all necessary information (asset locations, upload URLs, etc.) in the initial websocket connection message, supporting stateless infrastructure.
- **Versioning Proposal**: Maximus suggested adding versioning metadata to Hyperfy apps to track which branch/code was used for creation, enabling recreation of specific experiences despite backward compatibility.

### Technical Implementations
- **Pathfinding System**: Shiffty developed a pathfinding system using A* algorithm and raycasting to generate a basic navmesh, allowing agents to navigate environments.
- **Pet Follower System**: drdoge.eth created a pet follower system with commands like "follow me" and "patrol".
- **Animation Issues**: Ashxn identified an issue with animation origins being incorrectly positioned, causing feet to appear under the ground.
- **Texture Rendering**: Discussion about texture rendering issues, with Ashxn identifying that using "Closest" texture interpolation instead of the default "Linear" setting causes fuzzy textures at a distance.
- **Word-wrapping Fix**: Omka shared a workaround for enabling word-wrapping in the code editor by modifying the Monaco editor configuration.

### Platform & Community
- **Self-hosting Options**: Discussion about deploying Hyperfy worlds to production, with options including self-hosting (hyperfy.how/hosting/self/), using hyperworld.host for $5, or attending the upcoming tutorial.
- **Hyperfy.How Tutorial**: Announcement of an upcoming "Hyperfy.How #2" tutorial session about self-hosting Hyperfy worlds.
- **Token Discussion**: Saori emphasized prioritizing adoption over token flywheel mechanics, noting that strong tokenomics can't save a weak product.
- **UI/UX Feedback**: Users debated alternative keyboard controls for vertical movement in build mode, with suggestions for a dedicated "down" key to complement the space bar's "up" function.

## Key Questions & Answers

**Q: How can I deploy a Hyperfy world to production?**  
A: You can self-host following the guide at hyperfy.how/hosting/self/, use hyperworld.host for $5, or attend the upcoming tutorial. (Saori, maximus)

**Q: Is it possible to make 2D games that launch from inside Hyperfy?**  
A: Not possible at the moment. (Saori)

**Q: How can I see debug information like FPS counter, draw calls, triangles, etc.?**  
A: Use the lightning bolt at the bottom left or enter /stats in chat. (Ashxn)

**Q: What causes textures to get fuzzy at a distance?**  
A: Using "Closest" texture interpolation instead of the default "Linear" setting. (Ashxn)

**Q: Is VRM just a model that's boned and rigged in a specific way?**  
A: Yes, it's a GLTF format. (Saori)

**Q: Why aren't cel shaded VRM materials showing up correctly when imported from Blender?**  
A: Emission settings and color ramp can cause issues with VRM exports. (maximus)

**Q: Does the "unique" flag only affect models duplicated after you set it?**  
A: Unique means any new duplicates will be completely disconnected from anything. (Ashxn)

**Q: Does anyone else want a button that does the opposite of space in build mode and lowers you?**  
A: In v1 we had shift+space bar; X could be a natural choice based on FPS conventions, though X is already used for delete. (maximus)

**Q: Can we toggle the build mode overlay?**  
A: Already possible using the C key. (ash)

**Q: How are you currently handling env variables?**  
A: "I'm putting them in the docker service environment variable, so I can have different worlds with different set of envs." (HypPrivakos)

## Community Help & Collaboration

- **Animation Repository**: Saori created hyperfy-animations.vercel.app with previews and easy access to animations, helping the community find and implement animations more easily.

- **Multi-file Development**: MayD524 created the App-Rollup tool to bundle multiple files into one app.js, solving the difficulty of managing code across multiple files.

- **Texture Rendering Fix**: Ashxn helped TheMattEmpire identify incorrect texture interpolation setting ("Closest" instead of "Linear") as the cause of fuzzy textures at a distance.

- **VRM Export Issues**: Maximus helped Mugenomics troubleshoot cel shaded VRM model issues from Blender, identifying emission settings as the potential cause. Mugenomics confirmed removing color ramp and emission fixed the issue.

- **Swivel Chair App**: Ashxn helped devilsadvocate.sol fix networking issues in the swivel chair app.

- **NPC Pathfinding**: Shiffty created a basic navmesh generator with A* pathfinding to help with NPC movement in environments.

- **Environment Variables**: Ash promised to prefix env-changing commits with "infra:" to make them more obvious to infrastructure maintainers like HypPrivakos.

## Action Items

### Technical Tasks
- Fix animation origins to properly align with ground level (Ashxn)
- Improve pathfinding system for better NPC navigation (Shiffty)
- Create standard set of emits for pet interactions (MayD524)
- Fix Discord/GitHub summarizer bugs (jin)
- Add targeted network messaging (app.send with targetNetworkId) (MayD524)
- Change texture interpolation from "Closest" to "Linear" to fix fuzzy textures at distance (Ashxn)
- Adjust pivot point to center for improved model positioning (TheMattEmpire)
- Optimize GIF rendering frame rate for Discord sharing (devilsadvocate.sol)
- Remove color ramp and emission settings when exporting cel-shaded VRM models from Blender (Mugenomics)
- Investigate and fix issue where objects fall through platforms when loading order is incorrect (general hyper)
- Fix inconsistent behavior with walking up curbs of different heights (TheMattEmpire)
- Add versioning metadata to Hyperfy apps to track branch/code used for creation (maximus)
- Implement version checking system similar to CMake for Hyperfy apps (MayD524)
- Prefix environment variable change commits with "infra:" for better visibility (ash)
- Implement server-to-client initial websocket message with all configuration data (ash)
- Attend Hyperfy.How #2 tutorial about self-hosting Hyperfy worlds (maximus)

### Feature Requests
- Add drag and drop functionality from websites into app inputs (Ashxn)
- Add scene debug information in settings or as command (Ankou)
- Implement image generation for mintplex flow (Omka)
- Add ability to scale avatars properly (drdoge.eth)
- Create a Discord bot that renders GLB models and returns images (devilsadvocate.sol)
- Improve "unique" flag behavior to better handle unlinking of placed items (devilsadvocate.sol)
- Consider implementing customizable keybinds for building mode (Saori)
- Add a dedicated key for downward movement in build mode (general hyper)
- Add word-wrapping toggle in code editor (Omka)
- Consider changing crosshair color to indicate build/normal mode (ash)
- Add animated Hyperfy bot stickers to Discord server (devilsadvocate.sol)
- Create more animated stickers like "Bot waving" or "hyperbot breakdancing" (Sceth iii)
- Support for Abstract platform (Saori)

### Documentation
- Create TypeScript definitions for Hyperfy API (MayD524)
- Add Hyperfy content to hyperfy.how website (Omka)
- Document the new client-server connection system and how servers now provide configuration data (ash)