Inspiration

Holy Book UI was inspired by the need for a clean, structured way to present long-form text in Horizon Worlds — from scriptures to lore, codices, tutorials, or onboarding guides. Instead of every creator reinventing the wheel, I wanted to make a flexible reader template anyone could remix.

What I learned

  • How to structure UI components and data managers in Horizon using TypeScript and bindings.
  • Efficient caching patterns for performance (O(1) lookups for verses).
  • How to design with both mobile and VR users in mind.
  • The value of making assets remixable so other creators can learn from or extend them.

How I built it

  • Designed a UI layer (BookReaderUI) for the interactive panel, with navigation arrows, disclaimer toggle, and verse cards.
  • Built a BookManager class to handle JSON data loading, caching, and navigation logic.
  • Centralized customization into one CONFIG object so creators can easily change colors, fonts, textures, and sizes.
  • Ensured smooth performance by caching verse and chapter lookups.
  • Added modular bindings for navigation and clean separation of UI/data.

Challenges

  • Optimizing performance so navigation feels instant on both VR and mobile.
  • Designing a UI flexible enough to handle multiple themes (religious texts, game lore, tutorials, etc.).
  • Balancing readability with Horizon’s style and performance constraints.
  • Packaging the asset so it’s intuitive to remix and extend.

Built with

  • Horizon Worlds (UI system, core scripting)
  • TypeScript (logic, classes, bindings)
  • JSON (structured book/verse data)
  • Meta Horizon UI APIs
  • Persistent Variables & Assets for data storage and loading

Built With

Share this project:

Updates