# motionmaxxing: a SKILL.md agent skill that rates motion graphics on measured easing

> motionmaxxing is an agent skill that builds launch films and kinetic type pieces as plain HTML, renders them locally with Chrome and ffmpeg, and then checks the result against gates G0 to G5 before calling it mid or maxxed.

**Tejashmakwana/motionmaxxing** — Looksmaxxing for motion graphics. An agent skill that turns AI slop videos into films that look made by a motion designer.

- Repository: https://github.com/Tejashmakwana/motionmaxxing
- Stars: 1,406 · Forks: 144
- Language: JavaScript
- License: Apache-2.0
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/tejashmakwana-motionmaxxing

## The skill grades its own output on a three step scale

motionmaxxing starts from an unflattering diagnosis. The README opens by saying that an AI video is mid, and that mid means not broken and not ugly, just undecided: a label in the corner, a headline on the left, a card on a flat colour, a fade between every beat.

The project turns that complaint into a rating scale with three rungs, and each rung is defined by what appears on screen rather than by adjectives. Slop is described as a slide deck that moves, with corner labels, a counter, a left headline beside a card and fades everywhere. Mid is clean and competent, and nobody decided anything: default eases, flat grounds, a held end card. Maxxed is one idea, a world with light and texture, measured motion, cuts on motion, and gates that pass with the numbers shown.

That last clause is the important one. The scale is not an opinion about taste, it is a score attached to a set of checks, and the project states the goal plainly: the skill's job is to move a film one notch right and to say honestly which notch it landed on. For a team that has watched a dozen model-generated launch videos and could not agree on why they all felt interchangeable, having a shared label with numbers attached is the point of the tool.

## A SKILL.md folder, not a package you import

The unit of installation here is not a dependency. The repository is named Tejashmakwana/motionmaxxing, it is licensed Apache-2.0, and it is delivered as an agent skill: a SKILL.md file at the root, with folders for docs, examples, install.sh, library, references, runtime, scripts, studies, taste and templates.

The README states that it runs in Claude Code and in any agent that reads a SKILL.md folder, and the badges confirm the shape of the requirement: Node 22 or newer, and rendering with Chrome and ffmpeg. The examples directory holds 3d-hero, demo, phone and selftest, and the selftest folder is the obvious first thing to run when you want to know whether the toolchain on your machine behaves the way the author expects.

The licence file and a NOTICE file both sit in the root, which is the conventional pairing for an Apache-2.0 project. That licence choice has a practical consequence for a skill you intend to modify in-house: you can change the taste rules, the templates and the protocol and keep your changes internal, while any redistribution of a modified version has to carry the notice and state the changes. The repository also says the project lives inside FinalMotion, which is a commercial product of the same author, so the relationship between the open repository and the hosted service is one to keep in mind when you assess how much of the pipeline you get.

## Timing is taken from 53 motion moments and 12 measured eases

The mechanism that separates maxxed from mid is timing, and the project treats timing as a quantity rather than a preference. The README says the skill animates with timing measured frame by frame from 53 professional motion moments, and a badge records 12 measured eases.

The hero animation makes the method visible. It opens on a dark glitchy ground where the default grey serif word motion is measured with blue guide lines, dashed symmetry lines, a straight linear ease at 45.0 degrees, and red, amber and green arrows that read default serif, tracking 0.0 and ease 0.0, with a tiny verdict of mid. After a glitch cut, the same overlays re-snap onto the brand type motionmaxxing, with maxxing in orange, and the measured values now read weight 640, softLand 65.0 degrees, snapSettle, and tracking minus 0.045 em, with the verdict maxxed.

Read those numbers as an argument about typography rather than about animation. A weight of 640 is a heavy display cut, a tracking of minus 0.045 em is tightened letter spacing, softLand at 65.0 degrees is a named landing angle rather than a default cubic bezier, and snapSettle is a named behaviour for how a settle ends. A default ease at 45.0 degrees on the straight line is what an unconfigured animation looks like, and that is precisely the state the rating scale calls mid.

## G0 to G5 turn a look into a pass or fail

The check side of the project is a gate set, labelled G0 through G5, and the gates are what let a claim be argued about rather than admired. The README describes a slop autopsy of rejected AI films that ranked 25 default patterns, with a table mapping each tell to what it looks like and which gate catches it.

One gate is described concretely in the Wispr Flow comparison. In the film made without the skill, small labels sit in the corners of most frames and a headline block is held on the left over a card, and the README says that is the pattern gate G5 exists to fail. In the film made with the skill, the type is the picture, nothing sits in a corner, and the grounds change with the idea.

The design point is that the gates are cheap to evaluate and hard to argue with. Corner labels, held headlines and a card on a flat ground are structural properties of a layout, not judgements about quality, so a check on them either passes or does not. The risk of a scheme like this is that it rewards the detection of known failure modes rather than the presence of good design, and the project is upfront about that by making maxxed a claim about being decided and checked rather than a claim of perfection. The README says the comparison is a glow-up, not a miracle.

## Everything renders locally from plain HTML

The pipeline is deliberately unremarkable at the bottom. The README states that everything renders locally from plain HTML, and the badge line for rendering reads Chrome plus ffmpeg. There is no video model in the rendering path, no cloud render service and no binary asset pipeline described in the project documentation.

That choice shapes what the skill can do. Because a frame is a page, typography and vector elements can be measured before anything is encoded, which is what the blue guide lines and dashed symmetry lines in the hero animation are doing. A motion curve can be read as a slope in degrees rather than judged by eye, because the value is a number in the overlay. And because the output is rendered by a browser, the film inherits whatever the browser draws, which is also why a missing Chrome install is a hard stop rather than a degraded result.

The installation route is the install.sh file in the repository root, with the README's install section referenced by the Node 22 and Chrome plus ffmpeg badges. The project documentation does not print the contents of that script or a step by step command sequence, so the honest way to pick this up is to open install.sh, read it, and run the selftest example that ships under examples/selftest/. Every folder in the root listing has an obvious role, and the references, taste and studies directories are where the motion moments, the aesthetic rules and the rejected film analysis are kept.

## A website becomes the brief, and the brand is captured before the film is built

The input to the skill is not a shot list. The README says you give it a website and it captures the brand, finds an idea only that brand could own, builds a world for it, and animates on purpose. The output types named are launch films, product promos, brand stings and kinetic-type pieces.

The Spotify comparison shows what that means in practice. The film made without the skill is a left headline beside a phone mock-up in every frame. The film made with the skill carries one idea, the green full stop becoming a switch that floods the frame and becomes the icon, through type, through a wall of lines that collapses, and into a full-bleed ending. One gesture, carried through the whole film, rather than a layout that repeats.

The Cluely comparison makes the claim that the tool, not the model, is the variable. Both films were generated with the same model, GPT-6.1, from the same brief, and the README says you do not need the most expensive model to get motion that looks designed. For a team that has been buying a larger model to fix flat design, that is the most directly actionable claim in the project, and it is also the claim the before and after pairs are built to support. The brands in those pairs belong to their owners and are used only to show the difference, which the project addresses in an ethics and credits section.

## Early release, no published versions, and a known limits document

The project labels itself an early release and says it is still getting sharper. There are no GitHub releases for the repository, so there is no version number to pin, no changelog and no upgrade path in the usual sense. Updates arrive as commits to the main branch, and the last push was on 2026-10-06.

For a skill that drives an agent and shapes a rendering pipeline, that is the main operational risk. The behaviour of an agent skill is not only the code but the instructions, and when the instructions and the code move together on a branch with no tags, a change in a text file can alter output as much as a change in a script. The repository does counter this with docs/KNOWN-LIMITS.md, which the README badge for status points at, and with a self-test example, so there is a way to see what a given checkout actually does.

The dependency footprint is also worth sizing before you install anything. Node 22 or newer, a Chrome install, and ffmpeg on the path. In exchange you get a skill that runs entirely on your own machine, writes no code for a video model to interpret, and produces a reviewable artefact in plain HTML before any frame is encoded. That is a small, honest set of requirements for a project that claims to grade its own work with numbers.

## Conclusion

motionmaxxing fits teams that already brief AI models for launch films, product promos, brand stings and kinetic-type pieces, and that want the output judged by numbers instead of by the confidence of the model that made it. It does not fit a pipeline that needs finished video delivered straight from a video model, and it does not fit a machine without Chrome and ffmpeg available, since the skill renders and inspects its own work locally. Before adopting it, read SKILL.md and docs/KNOWN-LIMITS.md, run the selftest example under examples/selftest/, and check that the G0 to G5 thresholds match the standard your existing films already meet. The last push was on 2026-10-06, the repository publishes no GitHub releases, and the licence field on the repository says Apache-2.0.

## FAQ

### What is motionmaxxing and what does it do?

It is an agent skill, delivered as a SKILL.md folder, that builds launch films, product promos, brand stings and kinetic-type pieces from plain HTML. It renders locally with Chrome and ffmpeg and then scores the result on a scale of slop, mid and maxxed.

### How do I install motionmaxxing?

The repository root carries an install.sh script, and the README states that the skill needs Node 22 or newer plus Chrome and ffmpeg. The examples folder includes a selftest project that can be used to confirm the toolchain works on your machine.

### Can motionmaxxing run without Claude Code?

Yes, the README says it runs in Claude Code and in any agent that reads a SKILL.md folder. The skill is a set of instructions and supporting scripts rather than a compiled binary.

### What are the G0 to G5 checks in motionmaxxing?

They are gates that catch the recognisable patterns of AI motion graphics, and a rating of maxxed requires that the gates pass with the numbers shown. One example given is G5, which fails films that put small labels in the corners of most frames over a held headline block and a card.

### Does motionmaxxing call a video model to render the film?

No, the README states that everything renders locally from plain HTML, using Chrome and ffmpeg. The skill in the comparisons was used to shape the brief and the animation rather than to generate frames through a video model.

## Sources

- [Issues](https://github.com/Tejashmakwana/motionmaxxing/issues)
- [License: Apache-2.0](https://github.com/Tejashmakwana/motionmaxxing/blob/main/LICENSE)
- [README](https://github.com/Tejashmakwana/motionmaxxing/blob/main/README.md)
- [Tejashmakwana/motionmaxxing on GitHub](https://github.com/Tejashmakwana/motionmaxxing)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/tejashmakwana-motionmaxxing
