Under the hood
The technical guardrails that stop a generated video from inventing facts
A closed scene list, verbatim quotes, constrained colors and scenes that are not played when data is missing: how MotionMaker keeps a film honest.
Saying “our tool never makes anything up” costs nothing. Making it true takes architecture. This article walks through what, in the code, keeps MotionMaker from putting a number, a review or a face on screen that your website does not contain. For the reasons AI fills gaps in the first place, start with why AI videos invent facts. Here we look at the mechanics, layer by layer.
The principle: the model picks and rephrases, it does not write freely
One rule shapes everything else: the language model selects and rewords, it does not add. It never describes an animation in prose and never produces free-form content that would go straight to the screen. It fills typed fields inside a frame that the code built before the model was ever called. Every call to the model also asks for structured JSON output: the expected schema is passed with the request, and a reply that does not fit it is of no use.
This is a design decision, not a communication precaution. A model that writes freely can write anything, including things that are false. A model that has to fill a “hook” field or a “caption for this shot” field with words taken from your site has far less room to drift, and what it returns can be checked field by field.
Layer one: a closed list of scenes
The film’s director does not get a blank page. It picks from eight scene types declared in the code: a logo opening, a word-by-word statement, a replay of the real interface, a 3D accent, number cards, a depth shot, a convergence diagram and a closing call to action. Adding a scene type means declaring it in two places in the code. The model never invents one on the fly.
Each type has its own fields. A statement scene expects a line of text. A diagram scene expects a label of three to six words. A number scene expects label and value pairs. There is no box that says “describe the animation however you like”: how things move belongs to the code and to the seeded draw described in our article on seeds, not to the model.
Layer two: every claim carries a verbatim quote
Before anything is edited, MotionMaker reads your site and builds a brand sheet: selling points, offerings, tone, sector. This is where a model is most tempted to “summarize” by improving. So the prompt sets a checkable constraint: every selling point and every offering must come with a quote copied word for word from the text that was read, 120 characters at most.
Then the code refuses to take the model at its word. It gathers the text actually extracted from the pages (titles, descriptions, headings, paragraphs, navigation) and checks that the quote can be found in it. A selling point whose quote does not exist in the text is discarded. The prompt asks, and the code verifies: twice, because once is not enough.
Layer three: what the model is not allowed to touch at all
Some data never goes through the model. The logo address is extracted deterministically and copied as is after the call; asking the model to hand back the same value would only have added a risk of mutation for no benefit. Colors are constrained by an enumeration in the schema: the model decides which of the colors actually detected on the site act as primary and secondary, but it cannot produce a new one.
That choice is still a legitimate judgment call. The most frequent pixel on a page is often a white background, not the brand color. But the set of possible answers is bounded by what exists on the site.
Layer four: a scene without material is not played
This is the rule you can see most clearly on screen. The number-cards scene only makes sense if the site exposes real figures. The director’s prompt says to use it only when the brand sheet provides usable numbers, and to ignore the type otherwise. A site without a single figure therefore gets a film without a figures scene: shorter or composed differently, but never padded with a round number.
The same spirit governs the interface replay scene. It does not show a screenshot, which is a dead bitmap and unreadable on a vertical screen. It rebuilds the site’s real components (button, card, status badge) as animatable layers. The three one-word qualities shown on screen are rephrased from the brand sheet’s selling points, “never invented”, as the scene’s instruction puts it.
Layer five: ideas that can be played with what the brand already says
A film starts from an idea, and you pick one of three proposals. The instruction given to the art director includes an explicit ban: invent no fact, number, testimonial or promise that is absent from the brand sheet or from the angle. An idea has to be playable using only what the brand already says about itself. That removes a classic trap: an attractive concept that, to work, would need a figure nobody ever supplied.
The angle you type (a promotion, a launch, a customer result) is a source too. What you write is reused and reworded, and nothing is added around it. Mention a discount and it appears. Mention none and none appears.
After the model: corrections that do not depend on it
Once the sequence of scenes exists, a structural pass runs that does not depend on the model. It makes sure, for instance, that the film does not open on the logo, since nobody knows the brand at second zero, and that it always ends on the closing call to action. These are editing rules and have nothing to do with factual accuracy, but they show the method: whatever code can decide, code decides, and the model is kept for what needs judgment.
What this guarantees and what it does not
These guardrails limit what the film can state to what your site says. They do not check that your site is right: if a page shows an outdated figure, it will be reused. That is why the brand kit can be edited before you create anything. You can correct a selling point, add your logo, remove what is no longer true. Responsibility for accuracy stays with the source.
There is also one deliberate exception to the closed library: the “Carte blanche” mode, where a model writes the film itself in HTML, CSS and JavaScript and then looks at its own render to fix it. It is reserved for signed-in accounts, and its code runs only in an isolated iframe with no network access. The strongest guarantee, closed list plus typed fields, belongs to the standard path.
How to check for yourself
- Run a film on a site that contains no figures at all: you will not see a numbers scene.
- Compare every selling point on screen with the text of your page: it should be there, reworded but not enlarged.
- Open the brand kit: the retained selling points and offerings are listed and editable.
- Watch the film with the sound off: what is written is what is claimed. See also designing video for sound-off viewing.
For the whole flow from address to MP4, read how a website becomes a video. To contrast this with free generation from a prompt, see URL to video vs text-to-video AI.