How to get support
Please post your general support questions.
Explain in detail what you need help with.
Tell us what browser/desktop app/OS/runtime you're using.
Include a screenshot, video, code snippet, or a .rev backup file.
For help with your account or billing questions, please contact us here.
What should Rive's minimum Swift version policy be?
Currently, Rive's minimum supported Swift version is 5.3. Based on Apple's current submission rules, iOS and iPadOS apps must be submitted using Xcode 15 with the iOS 17 SDK (seen here, under Build with Xcode 15: https://developer.apple.com/ios/submit/):
Please note that as of April 2024 all iOS and iPadOS apps submitted to the App Store must be built with a minimum of Xcode 15 and the iOS 17 SDK.
Xcode 15.0 includes the Swift 5.9 toolchain, and current releases include the Swift 5.10 toolchain.
With the current Apple rule, we are discussing bumping the minimum Swift version to 5.9, which is utilized and supported by Xcode 15.0+.
Bumping the minimum Swift version means that Rive can continue receiving and building using Swift's latest API improvements and some of the newest language additions, such as Swift concurrency.
Notably, while the minimum supported Swift version would be bumped, we are not actively discussing dropping support for any OSes; Rive would continue to support the minimums of iOS 14 and macOS 13.1.
We're reaching out to the community to see if you foresee any issues in your active development processes that this change could introduce.
Rive Editor doesn't work on Android mobile/tablet
Hi,
Rive Editor used to work on my phone.
I bought a Galaxy Tab 9 (not just for Rive) and intended to connect a mouse and a keyboard, and work on the editor.
Today, I see that the editor doesn't work on my phone nor on my tablet.
Both Android.
When I preview a file from the community, or open the editor on my account on my phone or tablet, I just see a gray screen.
Switching to "Desktop site" doesn't work as well.
The browser does not matter.
I am aware there is no official support for mobile, but this was not an issue a while ago, and at the very least I could have tried to use a mouse/keyboard.
I wonder if something changed in the app that might be easy enough to fix.
Thank you!
Flutter detects 1D Blend as unknown?
hello! i got a chart / bar animation, you can change the level of chart using numerical value between 0 and 100. i made this bar with guidance of most popular bar animation in community files, which it keeps highest and lowest parts of the bar in blend 1d.
but unfortunately when i open it in flutter, for some reason timer is not counting, I even manually counted it to see it, eventually flutter does counts the level but the animation isn't moving. the 'pop' animation works well but 1d blend not working. what I encountered is Flutter detects Blend as unknown! in terminal, flutter detects the blend 1d part as "unknown"
flutter: State Machine: State Machine, State: Fade in
flutter: State Machine: State Machine, State: unknown
flutter: State Machine: State Machine, State: Pop
flutter: State Machine: State Machine, State: Dot Idle
is there anyone who put bar rive animation in flutter and run it perfectly? or know how to solve this? I'd really appreciate!!♡♡♡
Two scroll based animations on one page
I'm having an issue just now with having more than one animation that uses scroll position to progress the animation, and I'm not sure how to overcome it, when I add more than one only one will work, what are the key things I should be looking for when trying to implement it?
Bug with variable width constrains?
Is this a bug or expected behavior?
https://www.loom.com/share/fcc9bcad495d4491813cdd368f8b4cfb?sid=e3e8210a-918d-46c8-9b56-3a10232955ac
When I resized the artboard with the handles, it worked as expected.
But when I resize the artboard numerically, it doesn't work as expected 🤔
How would you set up a button (artboard) with a variable width resized at runtime and an icon positioned to the right?
Nested inputs in shared link
I've noticed that when sharing a Rive artboard as a weblink, only the inputs from the parent artboard appear. The nested inputs don't show up. Is there a way to make them appear?
Background from clipping bleeding through
https://rive.app/s/F-oxtyzquEWq219_qPlE3g/
As you'll see in the animation, from 5:52 the green of the behind layer bleeds through and creates a slight glitch in the graphic. Any thoughts on how to tidy this up?
Essentially I have:
- created multiple shapes
- grouped them
- used that group as clipping for a rectangle that creates the swoosh effect
Suggestions and help welcome!
Mismatch between value passed in from React received as input value
I have a 1d blend with 2 timelines that blend based on a value (`parallax`) between 1 - 100. When I run it in Rive and change the value manually, everything works as expected - A value of 0 shows the parallaxLeft
timeline, a value of 100 shows the parallaxRight
timeline. Any value in between blends as expected.
When I pass the value in from React, a value of around 80+ is treated as the same as a value of 100 in Rive, meaning it only shows the parallaxRight
timeline.
Notice in the first video (in Rive) that when I update the value between 90 - 100, there's a change in the parallax.
Notice in the second video (in browser) that when the value is between 90 - 100, nothing moves. I'm also updated the text run with the same value to show that the value is correct.
Demo: https://658df898ec129ee3d5a882ae-fodkxtsdkm.chromatic.com/iframe.html?args=&id=animations-magicalley--default&viewMode=story
Code: (edit, wrong link) https://github.com/lancesnider/lance-snider/pull/22/commits/dd1882183989922c56d89945bd853d5bfd10dfa7#diff-48b07bac157e9a359c0b6bb25605c0045b35d2a2bfd4e6b92336d95b8a8b2bac
Rev: https://www.dropbox.com/scl/fo/xd8ns1oxsb8xuuch6e4xe/AGJHsTkYnCfESpNgRg_9f7U?rlkey=niakcvgqhklxkomt7xm9quzps&dl=0
What I've tried
I thought it might be an issue with the blend state so I've tried adding a reset layer and turning
capture base state on/off
.I've done a bunch of testing to see if I'm setting the value incorrectly, but I'm pretty sure I'm not.
I've tried turning it off and on again, re-exporting a few times.
I thought it might be related to the fact that I'm setting the
parallax
value in the main artboard, which blends 2 timelines that are settingparallax
values in nested artboards, which also have blend states. I still see the issue even if I export just the nested artboard and modify itsparallax
value directly.
How do I get a button url to work in Framer?
The Rive animation works correctly with the sound and in the State Machine the url event fires ... but in Framer the control for the url displays as a number. Is there a way when the button is clicked it will go to the url? Do I have to put in a special code? (FYI - I am a designer and not a coder.) See in Framer: https://accessible-gift-765422.framer.app/page-6
The Rive Share Link: https://rive.app/s/3IASJ4qaiESaXVN_CvVNYA/
Framer code:
import React, { useEffect } from "react"
import { addPropertyControls } from "framer"
import _ from "@rive-app/react-canvas"
import RiveComponent, {
componentName, propertyControls
} from "https://rive.app/api/s/3IASJ4qaiESaXVN_CvVNYA/framer/"
/**
* @framerSupportedLayoutWidth any-prefer-fixed
* @framerSupportedLayoutHeight any-prefer-fixed
*/
export default RiveComponent as React.ComponentType
RiveComponent.displayName = componentName
addPropertyControls(RiveComponent, propertyControls)
How to access nested artboard inputs.
Hello, I've been trying to develop a tic tac toe using Rive. Here's what I have.
https://codesandbox.io/p/sandbox/exciting-frost-v67k7m
Essentially I have a "Tile" artboard that have 2 inputs and one Listener, respectively, Player and Active?. In addition to that I have another artboard called NestedTileGrid which is composed by 9 "Tile" artboards. I want to load the "NestedTileGrid" and from there I would like to be able to access the inputs inside the "Tile"s. I thought I would get access to the inputs by using:
const inputs = r.stateMachineInputs("NestedTileGrid");
but I get an array with 0 length.
Doing some more digging into the docs I've found the following link, but, trying to use those functions - setNumberStateAtPath, setBooleanStateAtPath - within the rive instance I get "setNumberStateAtPath is not a function" on the console.
https://rive.app/community/doc/state-machines/docxeznG7iiK#nested-inputs
I've tried using the following versions and I get the same result.
https://unpkg.com/@rive-app/canvas@1.0.102
https://unpkg.com/@rive-app/canvas@2.9.1
So my question is: How can I access to the inputs within the Tiles inside the NestedTileGrid?
Joysticks in State Machine
Hi! Is it possible to use joysticks in the State Machine? Like for example, to make a cursor tracking animation.
Joysticks and Events
Maybe this is a feature request, but want to check here first.
I have a control panel with various controls and a "heart" monitor. My hope was that I could affect the heart monitor state machine (4 different timelines for 4 different speeds/colors selected via a number input) with the controls.
Each of the controls is a nested artboard controlled by a joystick (except the switches at the bottom) - sort of similar to this setup (https://rive.app/community/files/10884-20860-dial/). My original hope was to fire events at different states of the control that update a number variable in the code (a little more complex than that but that's the gist of the idea). Then use that variable to update the number input that controls the monitor. It seems like this is not possible? I tried firing events in the timelines for the controls, but that doesn't seem to be how joysticks controlled timelines work. I also tried creating hit zones that would fire events, but with my current setup, its possible to set a control to off/0 with small swipes in the same spot vs actually swiping through all the hit zones.
Am I missing something obvious or do I need to rethink my whole strategy?
Is there a way to "stack" animations like this?
I am trying to make a confetti animation where it keeps popping when triggered. I've been stuck on this part for hours now; is there a way to make the current playing animation finish whenever it triggers a new animation?
I am using a nested artboard for the burst animations, and the simple animation actually works well. But the problem is it only plays once, it should be able to play in every trigger.
I tried to use remap animation but the problem is it doesn't play the whole animation and pauses to play the new one.
Please help !
Page Goes Blank/White Momentarily When Scrolling Fast with Rive Animations
Description:
I've integrated Rive animations into my Nextjs project using @rive-app/react-canvas. The animations load and function correctly, but I've encountered an issue where the page goes blank or white for a moment when scrolling quickly. This problem is intermittent and seems to occur on certain OS and browser combinations. Also this problem starts happening when multiple animations are present on a single page and appears once they are loaded.
Steps to Reproduce:
Integrate Rive animations using the provided AnimationComponent in a React project.
Deploy the project and access it on an iPhone 13 using Chrome or Safari, or on an iPhone 11 using Safari.
Scroll quickly up and down the page.
Expected Behavior:
The page should scroll smoothly without any interruptions or blank/white screens.
Actual Behavior:
The page intermittently goes blank/white for a moment when scrolling fast. The animations themselves load and function fine.
Affected OS and Browsers:
iPhone 13: Occurs on both Chrome and Safari.
iPhone 11: Occurs only on Safari ( chrome is fine).
Macbook air ( macOS Ventura 13.4 ) : Occurs on safari ( on chrome its fine)
library version:
@rive-app/react-canvas: 4.12.1,
next: 13.1.2
My code:
Parent Component:
{section.animation && (
)}
Animation Component:
import React, { useState } from "react";
import { useStateMachineInput, useRive } from "@rive-app/react-canvas";
import Spinner from "./Spinner";
interface AnimationComponentProps {
src: string;
}
const AnimationComponent: React.FC = ({ src }) => {
const [isAnimationLoaded, setIsAnimationLoaded] = useState(false);
const { RiveComponent, rive } = useRive({
src: src,
stateMachines: "State Machine 1",
autoplay: true,
onLoad: () => {
setIsAnimationLoaded(true);
},
});
return (
<>
{!isAnimationLoaded && (
)}
<div
className="md:flex-1 md:h-96 h-64 border rounded shadow mx-auto my-20"
style={{
display: isAnimationLoaded ? "block" : "none",
}} // Hide animation until loaded
>
</>
);
};
export default AnimationComponent;
Rive wasm selfhost
Hello,
i would like to selfhost the wasm file but i am not able to alter the rive.js on my server file because i am too much of a n00b. It always does a request to https://unpkg.com.
many thanks in advance
How to increase an input directly from Rive?
Can rive do math, to increase/decrease an input?
For example, in this community file:
https://rive.app/community/files/11437-21861-number/
How can you increase the numbers continously? Do you use a linear interpolation for that? How do you get the number to display? I analysed the file but couldn't fully understand it.
Export animation for web without using Lottie library
Hey there, I have an animation done in AE. I would like to export it for web but without using Lottie library. Just curious is it possible to do so with Rive? Thanks!
Importing Lottie Files / Event Listeners
Hi! Excited about playing around with Rive and I have a two part noob question.
1. When I import a Lottie file into an artboard I see the lottie file placed both on the main Artboard and as a separate self Artboard? I'm not sure how to explain it but is this on purpose? I couldn't find anything on this behavior in the docs.
2. I'm trying to create my first state machine with a simple hover state that switches between a single frame static duplicate of the lottie asset and a second fully looped animation on hover. the problem is that when i click on the lottie asset and create an event listener, i don't see any pointer event listener options. What am i missing?
I tried adding an event to the artboard but i didn't make much progress.
State machine exceeded max iterations
When running on IOS (Unity), I get the following message spamming in Xcode:
"state machine exceeded max iterations"
Any idea what to do about this?