Quill is made to be intuitive to artists. It's expressive, efficient and comfortable to use over a long period of time.

Quill can handle large drawings and animations such as those made within an animation studio. For that, Quill requires a PC (a laptop, a desktop or a workstation) and a VR headset attached (such as an Oculus Rift, Rift S, or a Quest 2 if you have an Oculus Link or compatible cable).


Quill can handle arbitrarily complex layer hierarchies, which helps artists keep their illustrations organized.

Very Large Files

Quill is designed to handle large paintings, with millions of strokes, and load them quickly and efficiently.

Animation Support

Quill supports various animation approaches such as frame-by-frame, keyframe, anim brush and puppeteering techniques. This set of powerful tools and workflows allow artists to control the look and feel of the animation without requiring any traditional CG technical knowledge, such as rigging or curve manipulation.

Production Pipeline Support

Besides arbitrary layer scoping and huge data file support, Quill integrates in production pipelines through export into USD, Alembic, FBX file formats that can be read in Maya, Houdini or even Photoshop. We also provide example materials for use in Unity and Unreal Engine. Lastly, a standalone and very efficient Quill viewer is provided to quickly debug assets.

Infinite and Precise Canvas

Quill supports large extensions of drawings — draw and dress the whole production world or game level knowing there won't be a precision glitch. In fact, in Quill, users can draw a real-scale version of the solar system at sub-millimeter precision. The trick: A powerful design for Quill's internal layer nesting system.

Spatial Audio Support

WAV, MP3 files and Ambisionic sounds can be imported. These sounds can be used as stereo or spatial audio sources. Quill supports sphere, cone and frustum-based spacial audio emitters.

Flexible Erasers, Colorizers and Adjustment Tools

Quill makes it easy to modify a drawing or a stroke after the fact. Quill is optimized for such operations, which are crucial to fast iteration and the creative process.

Maximum Image Quality

Quill puts the image quality first. From the antialiasing level of the rendering to the handling of transparencies, Quill uses state-of-the-art technology to make sure artists enjoy the smoothest and most elegant paint strokes possible.

Release Notes

Quill by Smoothstep 2.9

September 16, 2021

  • Replaced the workflow to publish IMM animations to the Oculus TV to use the Oculus Media Studio (see Tutorials section).
  • Fixed crash when importing the same Quill project more than once.
  • Fixed failing to render offline after the root layer has been renamed.
  • Fixed failing to import WAV sound files that contain extra metadata.
  • Fixed incorrect USD and Alembic exports after renaming layers.
  • Fixed problems with color picker when strokes are close to a large picture layer.
  • Fixed bug where Quill files could in some cases grow in size uncontrollably with each save.
  • Fixed color picker's sound effect not honoring global volume setting.
  • Fixed flicker on Settings dialog after saving new settings.
  • Fixed USD export warning message visually overlapping export status.
  • Added 1080x1920 portrait rendering preset.

Quill 2.8

February 25, 2021

  • Added PNG image sequence export option in “Render Camera” panel.
  • Added a 6k rendering resolution preset.
  • Added “Export Current Frame“ function in the Monitor Panel.
  • Added “Loop” action keyframe type in the root layer in addition to “Stop” and “Start” action keyframes.
  • Added “Create Keys in all Children” button in the Timeline Panel.
  • Fixed issue where children of Sequence Layers don’t behave correctly when span is moved.
  • Fixed issue that causes a crash when “Reverse selected keys”.
  • Fixed inaccurate camera focal length to field of view conversion.
  • Fixed inaccuracy when rendering 360 videos.
  • Fixed issue where the Camera won’t render high numbers of 3D Layers or Image Layers.
  • Fixed inaccurate transparency rendering when rendering Cameras.
  • Fixed issue where camera features become unavailable without an internet connection.

Quill 2.7

October 29, 2020

  • Added new camera layers and workflow.
  • Added 2D video, 360 video with sound export capabilities and new compression options.
  • Added ability to drag select range of keyframes on the timeline.
  • Added ability to select keyframes in all child layers of a group.
  • Added copy/paste keyframes function.
  • Added reverse keyframes function.
  • Added transform constraints to limit free transform.
  • Added auto select group mode (which auto-selects the parent group instead of the layer).
  • Improved keyframes visualization so keyframes on all layers are shown at the same time.
  • Added selection tool option to select in all frames for animation layers.
  • Added reverse frame by frame frames function.
  • Added “Theater” playlist in Quill Theater.
  • Added sound voices monitoring and limit to Performance panel.
  • Fixed issues uploading IMMs more than 100MB in size to Oculus Media Studio.
  • Fixed issue undoing and redoing deleting a frame would create duplicated identical strokes.

Quill 2.6

May 28, 2020

  • Improved sharing to Oculus Media Studio to by asynchronous with progress bar.
  • Added creator profile pictures in Quill Theater.
  • Fixed performance panel incorrectly reporting printed memory usage number.
  • Fixed Quill Theater crashing in when previewing draft posts in some instances.

Quill 2.5

April 30, 2020

  • Added Most Recent section to Quill Theater listing all the community submissions.
  • Improved loading, saving and exporting large files to be asynchronous with progress bar.
  • Improved sound compression algorithm to save memory when sharing to Oculus Media Studio.
  • Added bake looping sequence to paint layer (merges animations and key frames into a single layer to reduce draw calls).
  • Added time code switchable to frames by pressing on it in the timeline.
  • Added thumbnail cropping control in Save panel.
  • Fixed Quill would not start with some older video cards.
  • Fixed could not drag multiple key frames if they were on consecutive frames with no gaps between them.
  • Fixed logarithmic sound attenuation did not respect outer sphere boundary (popping in).
  • Fixed expanding or collapsing a group or sequence sometimes resulted in incorrect moving layer up/down behavior.
  • Fixed stopping playback when a non paint layer is selected could result in playhead in between frames.

Quill 2.4

March 31, 2020

  • Integrated Quill Theater into Quill with featured content from the creator community.
  • Quill creations uploaded through Oculus Media Studio are now available to view on both the Rift and Quest platforms through "Save to VR".
  • Creators can access their draft, uploaded, saved and featured Quill creations directly in Quill.
  • New spawn areas now default to eye-level.
  • Fixed select all in multiple layers would not respect timeline group visibility.
  • Fixed sound attenuation out value would not update correctly in UI in loaded files.

Quill 2.3

March 5, 2020

  • Added Oculus Media Studio upload flow, user can now upload and share their work online.
  • Added Performance Panel to help user monitor the performance statics such as memory size, polygon count and draw calls, so that they can create more efficient stories for Oculus Quest.
  • Added haptic feedback at story stops like Quill Theater.
  • Changed spawn areas saving and recalling to be more what you see is what you get.
  • Changed timeline timecode to H:MM:SS.frame from H:MM:SS.milliseconds.
  • Changed the resolution requirement of project poster image in “Save” panel to be 1920 x 1080.
  • Fixed can now undo change layer pivot action.
  • Fixed select all acting on layers that are not visible in the timeline.
  • Fixed crash resizing open ended spans at the 1h mark.
  • Fixed deleting solo’d sound layer causes all other sounds to be muted.

Quill 2.2

February 6, 2020

  • Fixed issue where audio clips would sometime be incorrectly synced to animations.
  • Fixed color palette swatch showing the wrong color gamma.
  • Fixed some UI disappearing and/or crashing after extended use.
  • Fixed animated eye level viewpoints would float during playback.
  • Fixed UI issue when inserting and removing drives.
  • Fixed crash re-importing audio while it’s playing.
  • Fixed using sequences inside groups would break group shifting functionality.
  • Fixed deleting and immediately recreating a span would create an invisible barrier at playhead.
  • Fixed floor level spawn area gizmo, removing the table/sensors.
  • Fixed incorrect rendering of opacity curves on children in offset sequences.
  • Fixed shifting groups could move children in negative time and clobber keyframes.
  • Added option to upload image from disk as project poster.
  • Changed the aspect ratio of project poster image to be 16:9.
  • Removed 3D photo sharing.

Quill 2.1

November 18, 2019

  • Improved painting mode (timeline collapsed) now all animation functions and shortcuts disabled when in this mode.
  • Changed transform gimbal now hidden by default, new setting to turn on/off by default.
  • Removed sharing to Facebook Spaces following the app deprecation.
  • Added Eye/Floor level setting for Spawn Areas.
  • Added outside minimum volume for Cone and Frustum sound modifiers.
  • Fixed issue with audio clips and sequences jumping at and when resuming from stops.
  • Fixed dragging spans or key frames when playhead not in viewport would jump to playhead.
  • Fixed FBX import not always correctly importing vertex color.
  • Fixed MP3 files wrongly re-timed and re-sampled in timeline.
  • Fixed crash when resuming using HMD after putting it down under certain conditions.
  • Fixed ability to close spans where they were open thus creating ghosts in the timeline that can be dragged past.
  • Fixed timeline UI in incorrect state after recording transform or opacity keyframes.
  • Fixed converting sequences to group affecting sub-sequences children, now only operates in parent timeline.
  • Fixed behavior of transform and opacity before the first keyframe (now takes first keyframe value).
  • Fixed rewind/forward behavior, now always correctly pages through root “play” markers.
  • Fixed insert frame before would jump to incorrect location.
  • Fixed crashes trying to interpret wrongly sized images as 360.

Quill 2.0

August 01, 2019

  • Introducing timeline, a powerful new way to organize and sequence complex narratives.
  • Added 1080p video capture resolution.
  • Added optimize whole layers and document to optimize tool.
  • Added controller mapping help shortcut.
  • Added link to online documentation in web browser.
  • Changed to default to empty document on start.
  • Updated quillustrations in the gallery.
  • Fixed incorrect animation with hold-frames in Alembic and FBX.
  • Removed Line brush.

Quill 1.8

April 09, 2019

  • Added - Export to USD.
  • Added - Stand-alone Quill Player exe for reviews
  • Added - Sharing 3D photos to group or page.
  • Added - Sharing 3D photos to Timeline with preferred privacy settings: Self, Friends, Everyone.
  • Added - Viewpoints export to Facebook Spaces.
  • Added - Better image quality for video recording.
  • Added - Color filters and effects to video capture.
  • Added - Directional sound cones and frustums.
  • Added - Symbols to keyboard when entering titles and descriptions.
  • Added - “Material Per Layer” option for FBX exporter.
  • Added - “Export UVs” option for Alembic exporter.
  • Added - “Separate Alpha” option for Alembic exporter, and to create 'rgb' and 'opacity' attributes separated.
  • Added - “Export Extra Attributes” option for Alembic exporter, so that you can have a lighter file if you do not need the extra attributes.
  • Added - “FixFlip” option for command line exporter for Houdini, since Houdini treats negative scales differently from Quill.
  • Added - Export to IMM (Quill compressed immersive file format which can be consumed by standalone Quill Player.)
  • Added - “AbortOnErrors” option for command line exporter. This option decides whether to abort or continue export process when encounter missing external references files, including models, pictures, audios.
  • Changed - Transforming selection now only allowed when using the selection tool, now easier to grab selection just any part need to be in the selection tool radius.
  • Fixed - Navigating frames back and forth broken for non-looping clips.
  • Fixed - Stroke/tool intersection issues near the ends of strokes.
  • Fixed - Grab tool creating artifacts at the ends of flat ended strokes when using soft influence.
  • Fixed - Thicken/Thin tool not always modifying the ends of some strokes depending on brush type and taper options.
  • Fixed - Line tool with round brush behaving inconsistently when changing tool size between begin and end points.
  • Fixed - Static layers will now last for the duration of the animation in FBX exports.
  • Fixed - Re-centering view on empty group renders Quill unusable.
  • Fixed - Issues when export image/sound/model layer to Alembic.
  • Fixed - Exact rendering for layers with flip.
  • Fixed - Geometry generation of flipped layers, in both FBX and Alembic.
  • Fixed - After saving overwriting once, will no longer prompt to overwrite when saving again.
  • Fixed - Ribbon brush normal flipped in Alembic.
  • Fixed - Quill now recovers on headset unplug/re-plug.
  • Fixed - Issue logging in to share on Facebook.
  • Fixed - Loading images with jpeg extension.
  • Fixed - Crash renaming root after deleting layers.
  • Fixed - Selection tool acts on selected layer even when invisible.
  • Fixed - Layer opacity UI not updating when merging layers with less opacity.

Quill 1.7

December 20, 2018

  • Added - Grab tool, a powerful new way to adjust and animate strokes.
  • Added - FBX model import.
  • Added - Current selected layer indicator on secondary hand.
  • Added - Capture & Post 3d photo to Facebook.
  • Added - Importing sounds, meshes and images embeds them in the Quill file.
  • Added - Linear and Logarithmic sound fall-off support.
  • Added - Support for 32 bit float WAV sound files.
  • Added - Mesh details in model layer settings.
  • Added - Capture camera smoothing amount and cancel capture options.
  • Added - Transform smoothing when pressing the grab trigger with less pressure.
  • Fixed - Rendering / performance issue on GTX 2000 series.
  • Fixed - Alembic export, vertex color issues.
  • Fixed - Alembic export, color space options.
  • Fixed - Capture camera smoothing now works correctly at all scales.
  • Fixed - FBX export, fixed UV mapping issues.
  • Fixed - FBX export, produces less polygons (to match Quill rendering).
  • Fixed - FBX export, fixed flip transformation.
  • Fixed - FBX export, fixed transformation when not baking transforms.
  • Fixed - two-hand manipulation to not being head dependent.
  • Fixed - sorting of file system entries.
  • Fixed - merge layers creates two undo points.
  • Fixed - various tools crashes when acting on selection in another frame.
  • Fixed - positional sounds no longer need to be 48,000 Khz.
  • Fixed - grabbing UI panels more accurate.
  • Fixed - restricted locomotion Y rotation issues.
  • Fixed - crash after undoing and redoing copy selection to frame(s).
  • Removed - Color picker and re-scale in model layer settings.

Quill 1.6

August 15, 2018

  • Added World Space axis snapping for the Line tool (press ALT index finger).
  • Added Line as ALT mode of Paint tool.
  • Added grab Line while drawing it, right hand grab button.
  • Added color space options for FBX export.
  • Added materials to FBX exporter for double sided vs single sided geometry.
  • Added restricted locomotion option for more comfort.
  • Added hand animation clip status indicator.
  • Added ability to move pivot on constrained axis (use index trigger with gimbal axes).
  • Colorize tool is now soft by default (ALT resize to change inner hard radius).
  • Now selection state will temporary disappear while transforming or using tools.
  • Duplicating keyframe now creates one frame instead of copying the number of holds.
  • Improved UI proximity cursor switching.
  • Improved Share to Facebook Spaces workflow.
  • Flatten group now has its own contextual button.
  • Fixed crash when loading big files (>2 GB).
  • Fixed Spaces reference table state on file load/save.
  • Fixed brush grid helper state on file load/save.
  • Fixed frame synchronization issues between animation clips.
  • Fixed merging a flipped layer slightly alters the geometry of some of the strokes.
  • Fixed undo/redo not correctly restoring state after several iterations following a layer merge.
  • Fixed selection from bottom layer continues to exist in invalid state after layer merge.
  • Fixed transparent PNG image layers incorrectly had color pre-multiplied by alpha.
  • Fixed crash when using paint or line tool with a non-paint layer selected.
  • Fixed some tools not working properly after merging animated layers.
  • Fixed clip looping status not correctly updating in the UI.
  • Fixed selection transform pivot resetting during undo and some operations.

Quill 1.5

May 1, 2018

  • Added share Quillustrations to Facebook Spaces functionality.
  • Improved image and animation capture tools.
  • Added 360 equirectangular capture.
  • Added Optimize tool to simplify stroke detail.
  • Added Ogg Vorbis support for audio layers.
  • Added support for frame by frame animations in FBX exports using visibility curves.
  • Added merging of animated layers.
  • Improved rendering performance for large scenes.
  • Added Viewpoints to save and recall various point of views into a scene.
  • Added recenter view on layer function.
  • Added copy selection to all frames of an animation.
  • Improved save failure recovery, existing files will no longer be corrupted if save fails.
  • Flatten group now has its own contextual button.
  • Fixed crash exporting Alembic models.
  • Fixed UVs no longer present in FBX export (now an option).
  • Fixed Quill not starting when rift headphones not detected.
  • Fixed Alembic exports no longer contain empty layers (crashed importing application).
  • Fixed crash when using selection tool to clear the selection while transforming it.
  • Fixed copy selection to animation frame not correctly converting layer coordinate systems.
  • Fixed crash when flattening empty groups.
  • Fixed 3D exports of models with vertex color not containing vertex colors.
  • Fixed layer transparency not respected in 3D exports.
  • Fixed animation frames sometimes not re-loading correctly (random holds or empty frames).
  • Fixed positional sound bug.

Quill 1.4

February 8, 2018

  • Added animated paint layers and animation clip panel.
  • Added animated brush settings to control how strokes are drawn while clips are playing.
  • Added round capped brushes.
  • Added auto width and transparent taper options to the previous pressure-sensitive options.
  • Added brush volume grid to help with depth perception.
  • Improved performance and memory use of drawings with lots of layers.
  • Added ability to import a Quill drawing in document open tab.
  • Added flatten group functionality (use merge button on a group).
  • Added automatic stabilization to video captures.
  • Implemented Alembic export of animated paint layers.
  • 360 viewer locked image layers can now be scaled and rotated.
  • Selection transform now shows gimbal tool.
  • New option to repeat duplicate selection transform to new animation frames.
  • Changed non-dominant hand thumbstick push down to toggle showing transform gimbal instead of auto-select transform object.
  • Fixed video clips capturing at incorrect speed on heavy scenes.
  • Fixed flipped layers rendering back instead of front faces.
  • Fixed crash when deleting the selection while transforming it.
  • Fixed crash with selection tool when non-paint layers were selected.
  • Fixed crash when starting two-hand transform during one hand transform of the selection.
  • Fixed crash during the application exit process that could in some instances could cause an infinite crash loop.

Quill 1.3

September 20, 2017

  • FBX and Alembic exports now include reference images and meshes.
  • Added Color Dodge and Burn colorizer blend modes.
  • Fixed issue with File selector for images not properly resetting to 2D Images.
  • Fixed crash when exporting very large cubemaps.
  • Fixed crash when duplicate transforming root.
  • Fixed crash when switching to/from selection tool while drawing.
  • Fixed crash when loading a file when a layer is selected for moving.

Quill 1.2

September 11, 2017

  • Added transform toolbox and gimbal widget, ability to grab and transform selection only. Added ability to flip layers.
  • Updated Selection tool; selection resets each time tool is used. Added visual +/- indicator to tool preview.
  • Changed opacity method; now when using tool opacity on strokes, opacity will build up, but when using layer opacity on fully opaque strokes, the opacity will be changed evenly for all the strokes (no overdraw).
  • Added viewer locked option for image layers; 360 images stay locked to your head while 2D images can be placed in your workspace like detached UI panels.
  • The secondary hand lower button (X in right-hand mode) now toggles between current tool and selection tool.
  • The primary hand lower button (A in right-hand mode) will delete the selection if there is one.
  • The secondary hand joystick push down will toggle auto-select - layer for moving (secondary hand cursor color will change).
  • Added +/- visual indicator to Thicken/Thin tool.
  • Fixed crash when saving home/camera position.
  • Fixed auto select transform layer proximity code.
  • Fixed color picking strokes not always returning the closest match.
  • Fixed thumb stick color shifting; shift value/saturation or hue based on where cursor is hovering.
  • Fixed issue with the nudge tool not working correctly when working on the selection if the layer was transformed.
  • Fixed saturation colorizer; when saturating a completely desaturated color, the hue from the current color will be used instead of blue.
  • Evened out the UI sounds volumes.

Quill 1.1

August 28, 2017

  • Added detachable and scalable UI (grab a toolbox title bar to separate it and place it where wanted).
  • Added new blend modes to the colorizer tool (add, multiply, screen, overlay, darken and lighten).
  • Added 3D model import (obj format only, no materials).
  • Now modifying tools (eraser, colorizer, thicken, nudge) only work on the selection if there is one.
  • Improved transparency composition of overlapping strokes.
  • Added UI sounds volume setting in settings panel.
  • Added volume control for non-spacialized sounds.
  • Fixed brush preview opacity to match paint and line tool opacity.
  • Fixed color picking from image layers (2D images only).
  • Fixed 360 image layers not rendering correctly in image captures.
  • Fixed auto grab for 360 equirectangular spheres and cubemaps image layers.
  • Fixed image captures not respecting size and distance culling.
  • Fixed imported images, audio and model layers; default name is the file name.
  • Fixed system window stretching VR preview (aspect ratio of preview window is now correct).

Quill 1.0

August 2, 2017

  • Added 360 mono and stereo image import (with transparencies) in both equirectangular and cubemap formats.
  • Added 3D sound.
  • Added Opacity blend mode.
  • New gallery Quillustrations.
  • Fixed Line tool.
  • Fixes to FBX exporter.
  • Fixes to precision for expansive drawings.
  • More accurate color picking and autograb.
  • Joystick left/right is undo and redo.
  • Joystick up/down is new layer and merge layer.
  • Several other UX improvements.
  • Several other general fixes.