Nubu
  • Features
  • How it works
  • Pricing
  • Integrations
  • FAQ
  • Contact
  • Docs
  • Blog
  • Log in
  • Log inSign up
    Nubu

    Creative automation for teams that ship campaigns, not busywork.

    Try for free
    Product
    FeaturesNubu MotionHow it worksPricingIntegrationsFAQ
    Company
    AboutContactDocsBlogLog in
    Legal
    Privacy policyTerms of serviceData deletion
    © 2026 Bear Studios · Nubu
    Introduction
    Templates overviewInstalling Nubu BuilderAdding template compsAdding propertiesAdding footageSetting defaultsExporting your templateUploading a template
    Flows overviewAvailable nodesAdding a nodeConnecting nodesWorking with dataTemplates and outputsUsing AI nodesBuilding a creative
    CampaignsTemplatesAssetsGlossariesRendersSettings
    Connecting Meta AdsConnecting Google AdsConnecting OpenAIConnecting Gemini AI StudioConnecting Anthropic
    AI Assistant overviewPrompt examplesAssistant settings and controls
    Nubu Motion scripts: the reference
    OverviewQuick startDifferences from After EffectsDeterminism
    JavaScript supportReferences and idsProject scriptsState and timeBudgets and errorsFormatting values
    GlobalTime conversionInterpolationVector mathsRandom and noiseColour conversionOther maths
    LayerCompPropertyKeyframePathGeometryProjectComponentConsoleComponentControlExpressionControl
    The property vocabularyAnimators propertiesAudio propertiesContent propertiesContents propertiesEffects propertiesExpression controls propertiesFills propertiesInstance controls propertiesLayer propertiesLayout propertiesMasks propertiesStrokes propertiesText style propertiesRig propertiesRigging propertiesRig controllers propertiesRigging weights propertiesRigging mesh propertiesRig items propertiesRig splines propertiesRig simulation propertiesRig properties propertiesRig drivers propertiesRig draw order propertiesTransform propertiesTrim path properties
    Error codesBudgets
    Changelog
    API overviewAuthentication and keysRate limits and errorsUploading assetsFoldersUploading templatesTriggering a flowRuns and creativesAPI Request deliveryCallbacks
    All docs
    Motion Scripting
    / Errors

    Budgets

    The hard limits a script runs inside, why they exist, and what happens the moment one is exceeded.

    The evaluation runtime is fenced by hard, HOST-INDEPENDENT budgets - the same numbers in the editor, in unit stubs and on the render farm, so a script that fits on one machine fits on all of them. Tripping a budget is a typed, recoverable status on the script, never a crash.

    BudgetValueWhat it fences
    script_polls200Interpreter polls one script may spend on one frame. A runaway loop, endless recursion or a catastrophic regex trips this and reports the typed interrupted - the editor presents it as a fixable budget issue.
    frame_polls2000Interpreter polls ALL scripts together may spend on one frame - the whole frame's ceiling, so a hundred well-behaved scripts cannot add up to a stall.
    memory_bytes67,108,864 bytesThe evaluation realm's memory ceiling. Exceeding it is the typed out_of_memory; the realm survives and the next frame evaluates afresh.
    state_bytes262,144 bytesThe serialised size cap for ONE state() store. A store that grows past it reports the typed state_too_large - keep stores to the working set, not a history of everything.
    stack_bytes262,144 bytesThe JavaScript call-stack guard. Runaway recursion reports the typed stack_overflow before the engine's own stack is at risk.

    The editor additionally runs a WALL-TIME watchdog around live previews so a runaway draft can never wedge the app while you type; the render truth is always the poll budgets above.