Video makers

Tools that turn data or images into video without opening an editor. Every one of them runs entirely inside your browser, and nothing you load is sent to a server. They all export WebM.

The five at a glance

What separates them is what you feed in and what moves on screen. Pick by the picture you want.

ToolWhat you feed inWhat movesHow the length is set
Bar Chart Race MakerA number per period (time-series JSON)Bar lengths and rank changesSeconds per period, or the whole video
Animated Line Graph MakerSeveral time series (JSON)Lines drawing left to rightEach part in seconds, or the whole video
Ranking Video MakerRanks, captions and your own imagesCards scrolling right to leftSpeed in px/s, or the whole video
Relationship Diagram Video MakerPeople, relations and shots (JSON)A camera zooming and panningSeconds per scene, or fitted to a total
Movo Blocks (block-built image animation)A single imageParts of the image floating, swaying, turningA length slider (2-15 s)

Which one to use

What you wantUse
Show numbers changing, with the order swappingBar Chart Race Maker
Show numbers changing, comparing several seriesAnimated Line Graph Maker
A ranking of photos with short captionsRanking Video Maker
Walk through people and how they are connectedRelationship Diagram Video Maker
Animate a single image you already haveMovo Blocks (block-built image animation)
Turn the video you made into a GIFVideo to GIF

Video makers

Bar Chart Race Maker

Turn time series data into an animated bar chart race and export WebM.

Turns numbers whose ranking changes over time — yearly population, revenue, traffic — into a bar chart where the overtaking is visible. Where one entry passes another reads better than a row of tables.

Input
JSON with entities (the items) and timeline (a value per period). Besides pasting JSON you can pull in World Bank public data (GDP, population, GDP per capita, internet usage). After a fetch the JSON box is the source of truth, so you can keep working offline.
Length
Choose between "seconds per period" and "total video seconds". A total is divided by the number of intervals, which is one fewer than the number of periods, to get the per-period seconds. Fixing the total means swapping in data with more or fewer periods leaves the running time alone.
Best for
  • Numbers spanning many years where the order changes on the way
  • Rankings where only part of the field is shown, such as a top ten
  • Turning a public statistic straight into a video
Key settings
  • Bars shown … How many to display. Anything outside that sits in a holding lane just under the bottom row
  • Bar maximum … Follow the data or pin it across all periods. Pinning makes growth feel larger
  • Rank movement easing … How sharply entries accelerate as they swap places
  • Resolution … 1280x720 / 1920x1080 / 1080x1920 / 1080x1080
Worth knowing
Periods with no value are not treated as zero. An entry that has not appeared yet holds no rank and enters from the lane below the chart, so something climbing from 40th enters exactly like something climbing from 11th.
Open this tool →

Animated Line Graph Maker

Turn time-series JSON into an animated line chart video and export it as WebM.

Lines that draw themselves from left to right. Several series can run at once, so it suits comparing two or more trends side by side. A small chart zooms up during the intro before the drawing begins.

Input
JSON with timeline (the x-axis labels) and series (values per series). Each series needs as many values as there are timeline entries, and a period with no known value is written as null. You can save and reload the JSON.
Length
Choose between "each part in seconds" and "total video seconds". With a total, only the line drawing time is solved backwards: the intro and the hold are presentation choices and are never trimmed to fit.
Best for
  • Comparing two or more series in one frame
  • Making growth feel large (the Y axis can follow the data)
  • Data with gaps in it
Key settings
  • Y axis behaviour … grow follows the lines upward, fixed pins it to max, auto derives one value from all the data
  • Jump highlighting … Rings and a delta on points whose change exceeds a threshold
  • Glow / trail / particles … Styling for the lines. All can be turned off
  • Resolution … 1280x720 / 1920x1080 / 2560x1440 / 3840x2160 / 1080x1920
Worth knowing
Gaps are drawn as a dotted stretch with a "no data" note. A missing period is never plotted as zero, so nothing looks like a crash that was not one.
Open this tool →

Ranking Video Maker

Build a right-to-left scrolling ranking video from JSON and local images.

For content that is a rank, a photo and a short caption repeated down a list, like a top ten. The layout is just cards moving sideways, so with the material to hand it comes together in minutes.

Input
JSON with an items array, plus images from your machine. Nothing is uploaded: pick or drop the images and write only the file name into the JSON's image field. A button copies a spec you can hand to an AI to write the JSON for you.
Length
Choose between "scroll speed (px/s)" and "total seconds". Give it a length and the speed needed for every card to pass through is worked out for you. The start and end waits count inside that length, so asking for 30 seconds exports 30 seconds.
Best for
  • Rankings where the photo carries it (products, places, works)
  • Vertical short-form video
  • Fitting a slot with a fixed running time
Key settings
  • Card size … Width, height and gap, which change how much fits on one card
  • Image area (%) … How much of the card the photo takes. Lower it when the text matters
  • Rank band / caption / border / accent line … Each can be switched off, down to photos alone
  • Resolution … 1280x720 / 1920x1080 / 1080x1920 / 720x1280
Worth knowing
How an image sits is set by fit (cover / contain) and position. If faces are getting cropped, move the position upward. Accent colours can be set per card.
Open this tool →

Relationship Diagram Video Maker

Describe people and relations in JSON to render a camera-driven relationship diagram video as WebM.

An explainer where the camera moves over a relationship diagram. You build it shot by shot — who to move in on, which relation to trace, what the subtitle says — much like a storyboard. It is the only one of the five that takes audio.

Input
JSON with nodes (people), edges (relations) and shooting.scenes (the shots). The Scenes tab edits the same data through the screen and writes changes back to the JSON. You can load a music or narration file and record your microphone at the same time.
Length
The running time is the sum of the scene lengths. Put a target into "Total video length" in the Record tab and press "Fit to this length", and the scene lengths are rewritten so the whole video hits it. Keep the current balance between scenes, or make them all equal.
Best for
  • Subjects with many people, where the relations need explaining
  • Explainers carrying a narration track
  • Content that has to be revealed one step at a time
Key settings
  • Scene camera … Zoom level and target. Everything else can be dimmed
  • Red box / callout / spotlight … Emphasis on the person or relation that shot is about
  • Pre-flight check … Flags scenes whose subtitle runs long, and scenes under 2.5 seconds
  • Resolution … 1920x1080 / 1080x1920 / 1080x1080 / 2560x1440
Worth knowing
Going vertical (1080x1920) means fewer wide shots and more zoomed ones. Holding a wide frame with many people on screen makes the names unreadable.
Open this tool →

Movo Blocks (block-built image animation)

Stack blocks to animate a single image and export it as a WebM video. AI depth estimation and background removal run in your browser, and the image is never uploaded.

Animates one still image. The motion is assembled by stacking blocks, so effects like "float up and down" or "sway and rotate" can be layered without writing code. AI depth estimation and background removal also run in the browser.

Input
One image. Nothing is uploaded and the image never leaves your machine.
Length
A slider sets it between 2 and 15 seconds. Blocks that would start after the video ends raise a warning, so stacked-up waits do not slip past you.
Best for
  • Adding a little movement to a single picture
  • Eyecatches and loop material
  • Moving a subject separately from its background
Key settings
  • Motion blocks … Float, slide, rotate, breathe, orbit, bounce and more, each with an amplitude and a period
  • Timing blocks … Wait and loop, which sequence the motion
  • Export FPS … 1 to 60
Worth knowing
Where the other four build a picture out of data, this one moves a picture you already have. Reach for it when the material is a photo or an illustration rather than a chart or a ranking.
Open this tool →

What all five share

  • Everything runs in the browser. The JSON, images and audio you load are never sent to a server (the one exception is barrace's "fetch public data", which talks to the World Bank at the moment you press it).
  • They export WebM. Recording captures only the canvas, so control panels and buttons stay out of the video. Chrome and Edge are recommended.
  • You can set the length in seconds. All five let you fix the running time first and fit the content to it. Where there are two ways to decide it, the value you did not fix is calculated and shown on screen.
  • When a request cannot be honoured, it says so. A length that is too short to work is raised to the shortest workable one, with the reason on screen. Nothing is ever exported at a different length in silence.
  • Vertical is supported. 1080x1920 is available, so the result drops straight into a short-form slot.

Changing the format afterwards

For places that will not take a WebM (some social networks, chat apps, older setups) there are tools to turn it into a GIF.

Video to GIF

Convert MP4/WebM video to an animated GIF. Set frame rate, width and duration. GIF encoding runs entirely in your browser.

Converts MP4, WebM and similar into an animated GIF — the step for taking a WebM made here somewhere that only accepts GIF. Frame rate, width and the range to cut are all adjustable, and the encoding runs in the browser too.

Open this tool →

GIF Animator

Turn an image into a looping animated GIF with mosaic, shimmer, shake and move effects. Runs fully in your browser.

Applies mosaic, shimmer, shake and move effects to a single image and produces a looping animated GIF. For when a GIF is what you need from the start, rather than a video.

Open this tool →

Frequently asked questions

Can I set the video length in seconds?

All five can. In barrace, linegraph and rankingvideo, switching "set the length by" to the total-seconds mode solves the speed or the per-period seconds for you. relationvideo distributes a target across the scenes from "Total video length" in the Record tab. Movo Blocks has a slider from 2 to 15 seconds.

What format do they export? Can I get MP4?

They export WebM. Converting to MP4 is not part of these tools. If you need a GIF, load the exported WebM into Video to GIF.

Is the data or are the images I load sent to a server?

No. Parsing the JSON, loading images and audio, and exporting the video all happen inside your browser. The one exception is barrace's "fetch public data", which calls the World Bank's public API at the moment you use it.

Can they export vertical (short-form) video?

All five offer 1080x1920. Vertical is narrow, though, so less fits in a frame: show fewer bars in barrace, or cut the wide shots and lean on zooms in relationvideo.

Which browsers work?

Recording uses MediaRecorder, so Chrome or Edge are recommended. On a browser without support, the export step says so instead of failing quietly.

See all tools