Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: Auto Keyframes in stateful applications #43

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

chrisgervang
Copy link
Collaborator

@chrisgervang chrisgervang commented Nov 19, 2020

Users need a method to quickly and automatically define an animation with hubble.gl.

The ideal solution is one which can automatically animate any change in visual appearance or data query. Ultimately, an auto keyframe needs to translate into a fluid visual appearance, which can be interpolated to transition from one keyframe to the next.

Some prototype code exists in master...magic-prototype

@akre54
Copy link
Collaborator

akre54 commented Oct 26, 2022

So typically the way timelines in Blender and After Effects, e.g., work is you can move the playhead to the desired frame, adjust your property, and the software will set a keyframe for a specific value at that time. Was that what you had in mind for this feature? What does "magic" mean in this context?

Or did you mean something closer to Auto Keyframes where the keyframes are more interactive? See https://www.youtube.com/watch?v=6vzzlWWB3sk for a demo of both.

@chrisgervang
Copy link
Collaborator Author

Auto Keyframes is exactly what this is. I had first encountered the concept in apple software as "magic move", so I thought that's what this kind of thing was called. Auto Keyframe is more accurate.

@akre54
Copy link
Collaborator

akre54 commented Oct 26, 2022

Can you detail the user interaction a bit more? The timeline would be playing and the values from a slider would be stored as keyframes? Or how do you see this?

@chrisgervang
Copy link
Collaborator Author

Timeline would be paused, but seek-able by dragging. From a user's perspective, any top-level control that defines the visualization (such as view state, a slider, a filter value) will be stored in each keyframe. The user would have the ability to either define new keyframes or update an existing one.

I've got this UI design to illustrate a basic flow and auxiliary states.

Side note: The term "visualization definition" would need to be contextualized for each application this Auto Keyframe is implemented for. If we're building for kepler.gl (or forks, like unfolded or carto), I'd propose "visualization definition" is limited to values you'd find in their config.json schemas. For kepler, this is view state, layer vis state, filter state, and layer animation state (which is their name for a calendar timestamp, since their animations are time based).

Auto Keyframes

@chrisgervang chrisgervang changed the title Proposal: Recorded "Magic" Keyframes in stateful applications Proposal: Auto Keyframes in stateful applications Oct 27, 2022
@akre54
Copy link
Collaborator

akre54 commented Oct 27, 2022

Ah okay. Then this seems more similar to the standard way keyframes are set in After Effects - move the playhead, change a value, and the value gets keyframed, while the timeline is paused.

Auto keyframes is more about interactively changing a value, and then having all of the intermediate values saved as keyframes while the timeline is playing.

See https://www.youtube.com/watch?v=ostDsH_Jjzw

Blender, for instance, allows you to change values without updating keyframes until you specifically ask to insert a keyframe (with i). Tradeoffs to both, but I agree I like the After Effects style better here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants