Rotor is a modular, ViewModel-first UI framework for Roku applications built with BrighterScript and SceneGraph. It is lightweight and designed to intuitively speed up development time while simplifying both the implementation and long-term maintenance process. It features a rich ViewBuilder system and a Roku-friendly implementation of the MVI (Model-View-Intent) design pattern. It helps developers structure large-scale apps with reusable components, state-driven logic, and optimized rendering.
- ViewBuilder system: Declarative and extensible view construction with a flexible, code-based template system, automatic full lifecycle management, and a virtual node tree abstraction.
- Roku-friendly MVI design pattern: Predictable state, clear separation of concerns, and cross-thread compatibility.
- Component-based UI: Isolated, reusable UI widgets and view models.
- i18n support: Locale-aware interface with flexible language resource injection.
- Integrated Animate Library
Want to get started quickly? Check out rotor-starter - a ready-to-use project template with Rotor Framework pre-configured, sample components, and best practices built in.
Rotor Framework requires BrighterScript v1. Install the latest version:
npm install --save-dev brighterscript@next @rokucommunity/bslint@nextManual installation:
- Download the latest
rotor-framework.zipfrom GitHub Releases - Extract the ZIP into your project's
source/directory (this will create arotor-framework/folder) - Import Rotor in your main file:
ROPM install:
- Note: You must install without prefix by adding this to
package.json - Don't worry everything is in the
Rotornamespace by default, so this is the only name reserved by the framework.
ropm install rotor-framework"ropm": {
"noprefix": ["rotor-framework"]
}import "pkg:/source/RotorFramework.bs"
frameworkInstance = new Rotor.Framework()
frameworkInstance.render([
{
id: "helloLabel", ' optional
nodeType: "Label",
fields: {
text: "Hello World!",
color: "#CCCCCC"
}
}
])You can find π± symbols in all documentation pages. These symbols link to AI-optimized summaries of the respective documentation.
π Read more about token savings
- Framework Initialization - Configuration, task synchronization
- ViewBuilder Overview - High-level architecture and core concepts
- Widget Reference - Complete Widget properties, methods, and usage patterns
- ViewModel Reference - Complete ViewModel structure, lifecycle, and state management
- ViewBuilder Fields Plugin - Field management and binding
- ViewBuilder FontStyle Plugin - Typography and styling
- ViewBuilder Observer Plugin - State observation patterns
- ViewBuilder Focus Plugin - Focus management system
- Cross-Thread MVI design pattern - State management across threads
- Internationalization support - Locale-aware interface implementation
- Roku SceneGraph (firmware 10.5+ recommended)
- BrighterScript V1
Rotor Framework is available under a dual license model:
The source code is licensed under the Apache License 2.0. This is a permissive open source license that allows you to:
- Use Rotor Framework in commercial and non-commercial applications
- Modify the source code for your own purposes
- Distribute your applications without sharing your application source code
- Include Rotor Framework in proprietary products
The Apache 2.0 license requires you to:
- Include a copy of the license in distributions
- Provide attribution in a NOTICE file (if included) or documentation
- State any modifications you made to the framework source files
A separate commercial license is available for organizations that require:
- Use of the "Rotor Framework" trademark in product branding or marketing
- White-label or OEM distribution arrangements
- Resale or redistribution of the framework as a standalone product
- Official support, warranty, or indemnification
For commercial licensing inquiries, please contact the maintainer.
"Rotor Framework" is a trademark. Use of the name is governed by our Trademark Policy, which is separate from the code license. In summary:
- You may state that your product is "built with Rotor Framework"
- You may not imply official endorsement or use the name in your product branding without permission
Attribution is not required under the Apache 2.0 license for applications built with Rotor Framework. However, if you find this framework useful, we encourage you to include a voluntary attribution such as:
Built with Rotor Framework
or
Powered by Rotor Framework
This helps others discover the project and supports the open source community. Thank you for considering it.
Copyright Β© 2025-2026 Balazs Molnar