ManipulateVideo
ManipulateVideo[expr,[u,<t1u1,…,tnun >]]
generates a video of duration tn from manipulating the value of u given the specification over times ti.
ManipulateVideo[expr,{u,…},{v,…},…]
provides controls to manipulate each of the u,v,….
ManipulateVideo[manipulate]
creates a video from a Manipulate object.
Details and Options
![](Files/ManipulateVideo.en/details_1.png)
![](Files/ManipulateVideo.en/details_2.png)
- ManipulateVideo can be used to generate interesting and insightful videos from existing Manipulate objects for easy publishing on video platforms.
- Any of the variables u, v, … can be controlled using one of the following settings:
-
{u,umin,umax} vary u from umin to umax {u,umin,umax,du} vary u between umin and umax in steps du {u,{u1,u2,…} allow u to take on discrete values u1, u2, … {u,<t1u1,t2u2,… >} vary u so that at every time ti takes the value ui - When times are given for controls in the form of {u,<t1u1,…,tnun >}, the value of DefaultDuration is ignored and a video with a duration of tn is generated.
- ManipulateVideo has the same options as Manipulate, with the following additions and changes: [List of all options]
-
Appearance None whether and how to show control DefaultDuration Automatic duration of the generated video - The following settings can be given for Appearance:
-
Automatic renders controls using the style elements of the local computer system None excludes control elements "Generic" renders controls in a generic style - The following video generation options can also be given:
-
BitRate Automatic approximate bit rate to use CompressionLevel Automatic compression level to use FrameRate 30 the frame rate to use GeneratedAssetFormat Automatic the file format of the result GeneratedAssetLocation $GeneratedAssetLocation the location of the result OverwriteTarget False whether to overwrite an existing file RasterSize Automatic the raster size used to rasterize expressions VideoEncoding Automatic video encoding to use VideoTransparency False whether the output video should have a transparency channel -
Alignment Automatic how to align the output in the display area Appearance None whether and how to show control AppearanceElements Automatic overall control elements to include in the displayed output AutoAction False whether to change controls automatically when the mouse is over them AutorunSequencing Automatic how autorun should use the controls BaselinePosition Automatic alignment relative to surrounding text BaseStyle {} base style specifications for the Manipulate Bookmarks {} bookmark settings ContentSize Automatic the absolute size for the content area ContinuousAction Automatic whether to update continuously when controls are changed ControllerLinking Automatic when to activate links to external controllers ControllerMethod None how external controllers should operate ControllerPath Automatic what external controllers to try to use ControlPlacement Automatic placement of controls ControlType Automatic type of controls to use DefaultDuration Automatic duration of the generated video Deinitialization None an expression to be evaluated if the output from the Manipulate is deleted Deployed False whether to make the displayed output deployed Evaluator Automatic the kernel to use for evaluations ExcludedContexts Automatic contexts excluded from SaveDefinitions FrameLabel None labels for the outer frame FrameMargins Automatic margins inside the overall frame ImageMargins 0 margins around the whole Manipulate IncludedContexts All contexts considered for SaveDefinitions Initialization None an expression to be evaluated when output is first displayed InterpolationOrder Automatic interpolation order for animating transitions between bookmarks KeyframeActions Automatic control settings for timed keyframe LabelStyle {} style specifications for the controls area LocalizeVariables True whether to localize the variables Paneled True whether to put the displayed output in a panel PreserveImageOptions True whether to preserve image size and other options when regenerating graphics RotateLabel False whether to rotate y labels on the frame SaveDefinitions False whether to save all definitions associated with expr ShrinkingDelay 0 how long to delay before shrinking if the displayed object gets smaller SynchronousInitialization True whether to perform initialization synchronously SynchronousUpdating Automatic whether to update synchronously TouchscreenAutoZoom False whether to zoom to fullscreen when activated on a touchscreen TouchscreenControlPlacement Automatic placement of controls on a touchscreen TrackedSymbols Full symbols whose changes trigger updates in the output UndoTrackedVariables None variables that, when changed, should be tracked by the front end's undo mechanism UnsavedVariables None variables whose values should not be saved
List of all options
![](Files/ManipulateVideo.en/details_3.png)
![](Files/ManipulateVideo.en/details_4.png)
![](Files/ManipulateVideo.en/details_5.png)
![](Files/ManipulateVideo.en/details_6.png)
Examples
open allclose allScope (6)
Options (3)
Appearance (1)
By default, the resulting video does not include any controls:
Use AppearanceAutomatic to display the controls. Controls are displayed depending on the computer system on which they are created:
Use Appearance"Generic" to uniformly display the controls:
DefaultDuration (1)
If no times are included in the specification, the duration of the video is controlled by the DefaultDuration option:
If explicit times are included in the specification, the duration of the video is computed accordingly:
If explicit times are included in the specification and the DefaultDuration is set, the times in the specification are rescaled to match the desired duration:
KeyframeActions (1)
Specify the evolution of multiple variables using the KeyframeActions option:
Applications (5)
Animated Graphics (4)
Animate creation of the dragon curve by increasing angles and evolution steps:
Manipulate a dragon curve, given specific time-value specification for each control:
Animation of rolling circles:
• [0,2] increase displacements from -4 to 4
• [2,4] increase the number of points from 100 to 400
Animate electric charges first by varying the magnitude and then the position of one of the charges:
Experiments from Demonstrations (1)
Create an animation based on the Understanding 3D Rotation Demonstration:
Create a simpler Manipulate:
Rotation experiments with a cube that extends between 0 and 1 in three dimensions:
• 0: set the vertical rotation axis at
• [0, 2]: perform a rotation
• 3: move the vertical rotation axis to
• [3, 5]: perform a rotation
• 6: move the vertical rotation axis to
• [6, 8]: perform a rotation
Properties & Relations (1)
It is possible to specify the time evolution of the variables in two different ways. Start with a two-variable Manipulate:
You can plan the evolution of each variable by specifying an association where the keys represent the times:
Another way to obtain the same evolution is to use the KeyframeActions option. In this case, you specify a list of delayed rules where the left-hand side is the time, and the right-hand side is the action that happens at that time. Usually the actions consist of variable assignments:
Possible Issues (1)
When specifying generic actions using the KeyframeActions option, it is important to keep in mind that each action will be evaluated twice, once in the initialization stage, and again at the specified time:
Text
Wolfram Research (2024), ManipulateVideo, Wolfram Language function, https://reference.wolfram.com/language/ref/ManipulateVideo.html.
CMS
Wolfram Language. 2024. "ManipulateVideo." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ManipulateVideo.html.
APA
Wolfram Language. (2024). ManipulateVideo. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ManipulateVideo.html