Skip to main content

Binding Data to Rive Inputs

For each exposed Rive input, you can enter values manually (static text, fixed colors) or create FUSE expressions for dynamic data binding. Manual entry is useful for fixed labels, while expressions c

Written by Julian Rodrigues
Updated today

Overview

Each exposed Rive input can be populated in two ways: manual entry for static content, or FUSE expressions for dynamic data binding. Manual entry is useful for fixed labels and design elements that don't change. Expressions connect to live data from the LIGR platform — matches, teams, players, statistics — or from external data sources like spreadsheets and APIs.


When you import a Rive file into FUSE, the editor automatically detects all exposed inputs and makes them available for data binding. Text fields, image slots, color inputs, and number values all appear in the FUSE interface ready to be configured.


Manual Data Entry

For static content that doesn't change during a broadcast, you can enter values directly into the Rive input fields.


1. Import your .riv file into the FUSE editor by dragging and dropping it into the workspace.


2. FUSE automatically detects the Rive file's exposed inputs — text fields, image slots, color inputs, and number values.


3. Select an exposed input from the list.


4. Enter your static value directly into the field (for example, a fixed label like "Match Summary" or a static color value).


5. The value you enter will display in that Rive input every time the graphic is used.


Manual entry is useful for fixed labels, branding elements, or any content that remains the same across all uses of the graphic.


Dynamic Data Binding with Expressions

For content that changes based on match data, team information, player statistics, or external sources, use FUSE expressions to create dynamic data bindings.


1. Select the Rive input you want to bind to dynamic data.


2. Instead of entering a static value, create a FUSE expression that references data from the LIGR platform.


3. FUSE provides access to a rich data hierarchy including league, competition, match, teams, scores, player statistics, lineups, and match events.


4. Enter your expression using the appropriate data path (for example, match.homeTeam.name to display the home team name).


5. The expression automatically updates when the underlying data changes during a broadcast.


Accessing the LIGR Data Hierarchy

The LIGR data hierarchy follows this structure: League → Competition → Match → Teams/Players/Stats/Events.


At the top level, you have league and competition data. Below that, match data includes teams, scores, and status. Deeper levels provide access to player statistics, lineups, and detailed match events.


Use expressions like player.data.first_name and player.data.last_name to access player name fields. These expressions automatically update when a different player is selected.


For player statistics, use the player.data object to access detailed statistics. Common statistics include goals, tackles, shots on target, passes, and more. Use expressions like player.data.stats.goals to display specific statistics.


Access the selected player's team data using player.data.team expressions. This includes team name, abbreviation, and logo URL. Use player.data.team.logo_url to display the team logo alongside the player's statistics.


Connecting External Data Sources

For data not available in the LIGR platform — tournament brackets, custom statistics, sponsor information — connect an external data source.


1. In FUSE, navigate to the External Data section and connect your data source.


2. FUSE supports spreadsheets and API endpoints as external data sources.


3. For spreadsheets, the first row must contain headers that FUSE will use as field names.


4. FUSE reads the header row and creates named fields for each column that you can reference in expressions.


5. Create expressions that reference the external data fields just like you would reference LIGR platform data.


6. You can mix and match LIGR data expressions with external data in the same graphic for maximum flexibility.


External data from spreadsheets updates dynamically — change the spreadsheet and the graphic reflects the new data without needing to re-publish.


Mixing Manual Entry and Expressions

You can use both manual entry and expressions in the same graphic. Some Rive inputs can have static values while others are dynamically bound to data.


For example, a tournament bracket graphic might use manual entry for fixed section labels like "Quarter Finals" while using expressions to pull team names and scores from external data.


This flexibility allows you to create graphics that combine stable design elements with dynamic match information.


Preview and Verification

After configuring data bindings:


1. Use the FUSE preview to verify that all data displays correctly.


2. Test with different data values to ensure expressions are working as expected.


3. For player-related graphics, select different players from control variable dropdowns to verify that player data loads correctly.


4. Check that manual entries appear as intended and that dynamic data updates properly.


5. Verify the layout handles varying data lengths (short team names vs. long team names, for example).


Once satisfied with the preview, publish the graphic to make it available in the Control Room.


Important Notes

Rive inputs must be explicitly exposed in the Rive editor for FUSE to see and bind them. Unexposed inputs will not appear in the FUSE interface.


When a player has no data for a particular statistic, the expression returns 0 by default. Design your graphic to handle this gracefully — either by displaying 0 or by hiding the element when data is unavailable.


External data spreadsheets must have a header row — FUSE uses these headers as field names for expressions.


Player statistics data (goals, tackles, shots) comes from the LIGR platform roster. Ensure statistics are kept up to date for accurate display.


Player images are pulled from roster data. Ensure all players have image URLs assigned in the platform. If a player has no image, the graphic will display a blank space unless you configure a default or fallback image.

Did this answer your question?