2D animation & storyboard software

Story first.

Encre starts at the board — panels, timing and camera in one document — and carries the same drawings all the way to finished animation.

Join the beta
SEQ 04 — HARBOUR 3 PANELS 24 FPS ON 2s
P01WIDE · 48f
P02MED · 36f
P03CLOSE · 30f
EXPOSURE · SEQ 04 114 FRAMES 4s 18f
Key Held on 2s Panel cut

Storyboard · shot camera · director arrows

Direct.

Every shot starts as a panel with a job to do. Frame it, mark where the camera goes and where the action goes, write down what’s said. Then press play and the board moves the way you drew it.

Each panel is an Encre storyboard card: shot number, duration, action, dialogue and camera notes. The Camera Planning template gives you layout, arrow and camera-note layers with a safe area. The white arrows are Encre’s Director Arrow, a vector shape whose head you can drag. The camera is the card’s Shot Camera: pan, tilt, zoom, rotate, and a real truck that moves through planes set back in depth, so the far hills barely move while the rain rushes past. The parallax here is Encre’s own camera math; the drawings are a stand-in drawn by the page.

    f 001

    Selected card

    SH 010

    Camera
    Out
    Board

    Click a panel to select its card, then give it a different move. The red frames on the board are where the camera starts (A) and ends (B). Truck in on the lamp and watch the near rain rush past faster than the tower.

    Each card plays its own camera. The Sequence workspace plays the whole board back to back as an animatic, at 24 frames a second, with its sound.

    The brush engine

    Draw.

    Graphite that catches the grain, ink that swells with pressure, smudge that pulls real paint, tones that fill like film. A brush library in ten families, from sketch pencils to comic tone, and vector pens whose strokes stay editable curves.

    Every stroke on this page was painted by Encre’s own brush engine: the same S-curve, the same light-to-full-to-light pressure, through the same path a tablet pen takes. Nothing retouched.

    A G-Pen stroke, drawn frame by frame
    f 24 / 24
    One stroke, 24 frames. A G-Pen line building up on 2s, and the same line from the vector G-Pen — a real outline, not a trace.
    Tones asa pressure stroke, or a patch filled with the tone
    • A stroke drawn with Charcoal Grain

      Charcoal Graingraphite · 44 px · pressure → size 0.175 · opacity 0.55 · tip: grain

    • A stroke drawn with Dry Pencil Detail

      Dry Pencil Detailgraphite · 6 px · pressure → size 1 · opacity 0.68 · tip: graphite

    • A stroke drawn with Pencil-2 Sketch

      Pencil-2 Sketchgraphite · 10 px · pressure → size 1 · opacity 0.70 · tip: graphite

    • A stroke drawn with Pencil-6 Quick Shade

      Pencil-6 Quick Shadegraphite · 60 px · pressure → size 0.45 · opacity 0.70 · tip: graphite

    • A stroke drawn with Soft Pencil Shade

      Soft Pencil Shadegraphite · 96 px · pressure → size 0.55 · opacity 0.38 · tip: grain

    • A stroke drawn with Brush Pen

      Brush Penink · 20 px · pressure → size 1 · opacity 1.00

    • A stroke drawn with G-Pen

      G-Penink · 5 px · pressure → size 1 · opacity 1.00

    • A stroke drawn with Technical Pen

      Technical Penink · 4 px · opacity 1.00

    • A stroke drawn with Tip Pen

      Tip Penink · 12 px · pressure → size 1 · opacity 1.00 · tip: g pen

    • A stroke drawn with Airbrush Hard

      Airbrush Hardairbrush · 60 px · opacity 0.20

    • A stroke drawn with Flat Paint

      Flat Paintairbrush · 60 px · pressure → size 0.3 · opacity 0.90 · tip: rake flat

    • A stroke drawn with Marker Wash

      Marker Washairbrush · 18 px · pressure → size 0.25 · opacity 0.55

    • A stroke drawn with Soft Airbrush

      Soft Airbrushairbrush · 140 px · opacity 0.35

    • A stroke drawn with Soft Wash

      Soft Washairbrush · 110 px · pressure → size 0.3 · opacity 0.35

    • A stroke drawn with Wet Round

      Wet Roundsmudge · 50 px · pressure → size 0.5 · opacity 0.90

    • A stroke drawn with Wet Textured Bristle

      Wet Textured Bristlesmudge · 70 px · pressure → size 0.35 · opacity 0.85 · tip: bristles circle dense

    • A stroke drawn with Screentone Crosshatch

      Screentone Crosshatchtone · 40 px · pressure → size 0.5 · opacity 1.00 · tip: crosshatch

    • A stroke drawn with Screentone Dots

      Screentone Dotstone · 40 px · pressure → size 0.55 · opacity 1.00 · tip: screentone dots

    • A stroke drawn with Screentone Grid

      Screentone Gridtone · 44 px · pressure → size 0.55 · opacity 1.00 · tip: screentone grid

    • A stroke drawn with Screentone Lines

      Screentone Linestone · 44 px · pressure → size 0.55 · opacity 1.00 · tip: lines

    • A stroke drawn with Tone Field Crosshatch

      Tone Field Crosshatchtone · 120 px · pressure → size 0.4 · opacity 1.00 · tip: crosshatch

    • A stroke drawn with Tone Field Dots

      Tone Field Dotstone · 120 px · pressure → size 0.4 · opacity 1.00 · tip: screentone dots

    • A stroke drawn with Tone Field Grid

      Tone Field Gridtone · 120 px · pressure → size 0.4 · opacity 1.00 · tip: grid

    • A stroke drawn with Tone Field Hatch

      Tone Field Hatchtone · 120 px · pressure → size 0.4 · opacity 1.00 · tip: hatch

    • A stroke drawn with Leaves

      Leavesfx · 72 px · pressure → size 0.5 · opacity 0.72 · tip: leaves

    • A stroke drawn with Spatter Noise

      Spatter Noisefx · 54 px · pressure → size 0.5 · opacity 0.60 · tip: noise

    • A stroke drawn with Texture Splat

      Texture Splatfx · 88 px · pressure → size 0.45 · opacity 0.48 · tip: noise

    • A vector stroke drawn with Vector G-Pen

      Vector G-Penvector · real SVG outline · taper in/out

    • A vector stroke drawn with Vector Technical Pen

      Vector Technical Penvector · real SVG outline · no taper

    • A vector stroke drawn with Vector Brush Pen

      Vector Brush Penvector · real SVG outline · taper in/out

    • A vector stroke drawn with Vector Marker

      Vector Markervector · real SVG outline · no taper

    • A vector stroke drawn with Vector Tapered Ink

      Vector Tapered Inkvector · real SVG outline · taper in/out

    • Smudge Smear Round dragged through bands of crimson, amber, teal and cream paint

      Smudge Smear Roundsmudge · 60 px · pressure → size 0.45 · opacity 0.85 · pulls the paint under it

    • Smudge Smear Bristle dragged through bands of crimson, amber, teal and cream paint

      Smudge Smear Bristlesmudge · 90 px · pressure → size 0.35 · opacity 0.80 · tip: bristles circle dense · pulls the paint under it

    • Smudge Blend Gentle dragged through bands of crimson, amber, teal and cream paint

      Smudge Blend Gentlesmudge · 80 px · pressure → size 0.4 · opacity 0.60 · pulls the paint under it

    • Palette Knife dragged through bands of crimson, amber, teal and cream paint

      Palette Knifesmudge · 70 px · pressure → size 0.2 · opacity 0.95 · tip: oil knife · pulls the paint under it

    In the app: Sketch · Ink · Paint · Watercolour · Dry Media · Comic Tone · Nature · Architecture · FX · Erase & Smudge. The library is being rebuilt on Encre’s own tips; the strokes above come from the engine it runs on.

    The Look system

    Look.

    Draw it once. The look lives in a stack on top of your lines — boil, hatching, ballpoint, pixels — so a whole shot can change style without a single frame being redrawn.

    Every Look node here is a real node in Encre, shown with its own parameters. In the app it runs on your actual brushwork; this page draws a browser sketch of the idea.

    Keys · breakdowns · inbetweens

    Animate.

    Two keys make a walk. The breakdown gives it weight, the extremes give it bounce, the inbetweens make it move. Choose which drawings exist, put them on 1s or 2s, and watch the exposure sheet, the onion skin and the arcs follow.

    The walker is a small rig. Encre drew all twenty-four drawings from the rig’s stroke data, with its own Pencil-2 Sketch, G-Pen and fills; the first one was also drawn by hand, below.

    f 01 / 24

    Drawings

    View

    Onion skin
    Path

    Arcs and spacing

    By hand. Drawing 01 in Encre’s Pencil-2 Sketch, rotating the canvas as the hand does. 4× speed.
    Pencil. Encre’s Pencil-2 Sketch: line of action, bones, the head circled twice.
    Ink. Encre’s G-Pen, pressure from the data, hidden lines already gone.
    Colour. Filled under the ink, part by part, in painter’s order.

    Controllers & modifiers

    Move.

    Every animated transform lives on a Controller. Stack modifiers on it — a bob, a sway, hand-drawn jitter, an earthquake on the camera — and each one is a pure function of time, so scrubbing, playback and export always land on the same frame.

    These are the app’s own formulas and its seeded noise, ported line for line. Same seed, same frame, same numbers.

    f 001 / 096 seed 7

    Basic · 8

    • oscillate
    • ping_pong
    • drift
    • orbit
    • spin
    • pulse
    • bob
    • sway

    Physical · 6

    • spring
    • bounce
    • overshoot
    • follow_lag
    • pendulum
    • elastic_settle

    Organic · 5

    • noise
    • shake
    • wander
    • float
    • breathing

    Hand-drawn · 3

    • registration_jitter
    • stepped_motion
    • hand_drawn_jitter

    Camera · 4

    • camera_drift
    • impact_shake
    • handheld
    • earthquake

    Path · 1

    • follow_path

    27 modifiers.
    39 presets.

    The Environment

    World.

    Every shot carries an environment: time of day, wind, rain, storm, cloud, snow, fog, the moon. Key it like any other channel, and the sky, sea, weather and grade all follow the same few numbers.

    Sky, clouds, sun and moon, stars, sea, rain, snow, wind and the grade are Encre’s own generators, ported line for line and checked against the app. The boat and the lighthouse are drawn on top, and the boat rides the sea’s nearest wave. The inked cloud styles, the sea’s foam and light, the lightning and the far hills are in the app now. The swamp, the gusts and the small life were drawn here first and come next.

    f 001 / 540

    Scene

    Scenes

    Clouds

    Clouds

    Camera & timing

    Camera Timing

    Look

    Mood
    Layers Foam

    Environment channels

    The Cloner

    Clone.

    Draw four buildings. Get a city. The Cloner lays drawings out in rows of depth, each copy with its own width, height, mirror and windows, all from one seed, so the city is the same every time you open the shot and different the moment you change it.

    The Cloner is in Encre: on the card, and in the 3D world, where ten thousand clones cost half a millisecond a frame. This is the same idea running in your browser, with the same parameters.

    f 001 / 480
    The sources. Four drawings. Everything in the skyline is one of these.
    Show clones

    Automation

    Or write it.

    Anything you can do by hand, a recipe can do too. Recipes are short Python files that compile to a checked plan of actions — every step validated before it runs, every step one undo.

    Below is an excerpt from a real recipe that ships with Encre. The ball beside it is those keys, played in your browser with the app’s own easing.

    recipes/bouncing_ball_controller.pyexcerpt
    # (frame, y offset from the resting position, interpolation LEAVING this key)
    Y_KEYS = (
        (1, -372.0, 'ease_out'),        # drifting into the hang
        (5, -392.0, 'ease_in'),         # anticipation: the top of the arc
        (12, 0.0, 'ease_out'),          # contact
        (21, -242.0, 'ease_in'),        # rebound apex
        (29, 0.0, 'ease_out'),          # contact 2
        (36, -132.0, 'ease_in'),        # apex 3
        (42, 0.0, 'ease_out'),          # contact 3
        (46, -58.0, 'ease_in'),         # apex 4
        (48, 0.0, 'linear'),            # settled on the floor
    )
    
    # -- the Controller: every animated transform lives here
    ctl = r.controller.create('Ball', [ball])
    # Pivot FIRST, and at the CONTACT point: squash compresses upward off the floor.
    r.controller.set_pivot(ctl, BALL_X, FLOOR_Y)
    
    for frame, offset, mode in Y_KEYS:
        r.controller.key(ctl, 'y', frame, offset, interpolation=mode)
    for frame, scale_x, scale_y, mode in SCALE_KEYS:
        r.controller.key(ctl, 'scale_x', frame, scale_x, interpolation=mode)
        r.controller.key(ctl, 'scale_y', frame, scale_y, interpolation=mode)
    Controller: Ballf 1–48 · 24 fps

    The work

    Tell.

    The film below was made in Encre and rendered by the app, with its sound. Everything above it is running live on this page; the stills are from it: pick one and it plays.

    Next: The Lantern, a short film made in Encre from the first stroke to the last frame. In production.

    The storm, in four shotsMade in Encre · one world, four cameras · ten seconds, rendered by the app

    And that’s only half of it

    Studio.

    Ten more tools, each one live on its own page: letter a comic page, turn a head with two numbers, draw a box in perspective, pixelate the storm, prop a harbour and set it bobbing, shape a curve in the graph editor.

    Open the Studio →

    Beta

    Get on the board.

    Encre is coming to Windows and macOS. It is in beta, so things will still change. Leave your email and we’ll write when it opens.

    We’ll only use your email to tell you about Encre.