2D/3D animation, rigs, retargeting, motion capture, facial animation and lip sync
- articleWhich monocular human-motion tools can I use in a commercial project, given code, SMPL and repo licences?
Problem. Research mocap code often ships with non-commercial terms. Conditions. Commercial or client work. Method. (1) WHAM's LICENSE is MIT (copyright Soyong Shin), but its README requires registering at the SMPL and SMPLify sites to download body models, which have their own licence terms (not read in full here). (2) GVHMR's LICENSE permits use, copying, modification and distribution for educational, research and non-profit purposes only, requires modifications to be open source and prohibited for commercial use, and directs commercial users to email the authors. (3) So WHAM code may be usable but is gated by SMPL; GVHMR needs a separate commercial licence. Failure modes. Treating GitHub 'MIT' as covering the SMPL model. Limitations. SMPL's own licence page was fetched but not analysed in this round; dataset terms (AMASS) are covered by earlier items C2-B14-D2-09 and C2-B40-RD-05. Version/date. Fetched 2026-10-23.
- articleHow do I use a centre-of-mass and balance check in Cascadeur to make poses and jumps read as physically weighted?
Problem. Poses can look weightless because support and balance are wrong. Conditions. Keyed character animation in Cascadeur, standing or at rest poses and jumps. Method. (1) Use the Center of Mass projection shown on the ground. (2) Pose balance rule from the docs: with one fulcrum point the centre of mass should project on it; with several, the projection should lie between them; otherwise the pose is unbalanced, which is fine in motion but should be fixed for a character at rest. (3) For jumps, mark the last grounded frame and first landing frame, add a ballistic trajectory to the centre of mass, adjust height, distance and time, and snap the centre of mass to it; ballistic ghosts coloured purple show non-physical rotation. (4) Physics priority frames hold chosen poses, but too many reduce accuracy and slow the simulation. Connection to craft. This is the animation principle of weight and balance made checkable (the docs frame it as making motion adhere to physics; the principle ...
- articleWhen should I animate with IK versus FK in Blender, and what does the manual say about IK chain behaviour?
Problem. Posing end bones (feet, hands) by hand through FK is slow and breaks contact. Conditions. Armature in Pose Mode. Method. (1) IK lets you position the last bone in a chain and the rest follow, as moving a finger pulls the arm. (2) The manual notes that with FK, fine changes get harder farther down the chain because parents must be adjusted first. (3) IK is done mostly with bone constraints; a simple Auto IK is also available in Pose Mode. (4) Use IK on limbs whose end must stay planted (feet on the ground) and FK where arcs and overlap matter (inference from the stated trade-off; the manual does not prescribe this). Failure modes. Unstable chains without pole targets or stretch limits (settings exist for pole target, stretch, locks). Limitations. Only the introductory text was read in this round. Version/date. Manual source fetched 2026-10-23.
- articleWhat are ARKit face tracking's device, range and mesh limits that affect capture for animation or AI characters?
Problem. Phone face tracking is a common capture source but has conditions. Conditions. ARKit face tracking on iPhone/iPad. Method. (1) Faces are detected within 3 metres of the front camera. (2) Support needs an Apple Neural Engine device on iOS 14/iPadOS 14 and later, or TrueDepth on iOS 13 and earlier. (3) ARKit supplies a coarse 3D mesh and blendshape coefficients (0 neutral to 1 maximum) for expression; coefficient left/right is relative to the face, and views mirror the camera image. (4) The face-tracking configuration can estimate directional and environmental lighting using the face as a light probe. (5) Apps must include a privacy policy for face data. Note a documentation discrepancy: one sample page says only one face is tracked (the largest or most recognisable), while the ARFaceAnchor page says multiple faces can be tracked simultaneously with the face-tracking configuration. Failure modes (inference from the stated limits). Subjects beyond 3 m, multiple faces in frame,...
- articleHow do Kling motion control (reference video) and the brush-based motion paths work: inputs, orientation modes, durations, limits and failure modes?
Problem. Directing a character's body and face movement with a reference clip instead of text. Conditions. Kling 2.6/3.0 motion control as exposed by fal, Replicate and Kling's own guide (hosted, proprietary). Method. (1) Reference-video motion control (fal 2.6 endpoint): image_url (character image: clear body proportions, avoid occlusion, occupy over 5% of the image), video_url (realistic character with visible upper body or full body including head), character_orientation = 'image' (keeps the image's pose and facing; max 10 s; good for camera-movement goals) or 'video' (transfers motion and orientation literally; max 30 s; for dance and choreography), optional prompt, keep_original_sound. (2) The prompt is scene-setting, not motion: describe identity, environment and style; over-describing motion is the most frequent error. (3) Kling's guide: motion can come from an uploaded video or a motion library; VIDEO 3.0 adds element binding to improve facial consistency across angles and o...
- articleHow do I run Wan2.2-Animate to transfer a driving video's motion onto a character image (animation mode) or swap the character into the video (replacement mode), and where does it break?
Problem. Making a still character perform the movement and expression of a reference video, or replacing a person in a clip. Conditions. Wan2.2-Animate-14B (weights Apache 2.0; diffusers port 2025-11-13). Inputs: one character image plus one driving video. Method. (1) Preprocess the driving video: pose detection is mandatory, SAM2 mask extraction and an image-editing model are optional; outputs are src_face.mp4 and src_pose.mp4 (animation mode) plus src_bg.mp4 and src_mask.mp4 (replacement mode). Set --resolution_area (pixel area, applies to preprocessing and generation) and optionally --fps (lower fps is faster but may stutter). (2) Animation mode: enable pose retargeting (--retarget_flag), highly recommended when body proportions differ; basic retargeting needs both the reference and the driving video's first frame to be front-facing and stretched; --use_flux adds an enhanced retargeting step through FLUX.1-Kontext-dev, which the guide says is not guaranteed (consistency or pose m...
- articleWhich SSML tags does Amazon Polly support for neural, long-form and generative voices (is emphasis available)?
Problem: SSML written for one voice type silently loses effect on another. Conditions: Amazon Polly; voice engines Standard, Neural, Long-form, Generative. Method: Polly's page says all tags except <amazon:domain name="news"> are supported for Standard voices, then tabulates the others by voice type. From the table as fetched: <break>, <lang>, <p>, <s>, <sub>, <w>, <speak> are fully available for neural, long-form and generative voices; <emphasis> is not available for any of the three; <prosody> is only partially available for all three (and <prosody amazon:max-duration> is not available); <mark> and <phoneme> are partial for generative voices; <amazon:auto-breaths> and <amazon:effect phonation=soft> are not available for the three newer engines; the dynamic-range-compression effect works for neural and long-form but not generative. Use (inference): when moving from Standard to neural/generative voices, replace emphasis with wording/punctuation, use <break> and <p>/<s> for rhythm, a...
- articleWhat adaptation techniques do dubbing translators use to reach lip-sync versus isochrony, and what do they give up in fidelity?
Problem: a literal translation rarely fits the mouth or the clock. Conditions: any dubbed dialogue line. Method: Chaume's techniques as reported: for lip-sync, repetition (cognates), word-order shift so the marked sound lands on a similar sound, substitution with a synonym/antonym/hypernym, reduction or amplification, and omission or addition. For isochrony, amplification (repetition, gloss, paraphrase, longer synonyms) or reduction (ellipsis of modal verbs, interjections, phatic markers, social formulae, vocatives and proper names; omission of redundancy with the image; deictics and all-purpose words). Fidelity trade-off: such omissions and additions would count as errors in written translation but are permitted in dubbing. Example (measured, 10 segments of a Persian dub of The Green Mile): repetition, word-order shift and substitution dominated lip-sync, while isochrony used reduction 58 percent and amplification 42 percent; amplification was also used to disambiguate. Koveriene f...
- articleWhat do Chaume's three dubbing synchronies (lip, kinesic, isochrony) each require, according to translation-studies sources?
Problem: dubbing adaptation is judged on several kinds of match at once, but briefs often say only 'sync'. Conditions: dubbing (not subtitles or voice-over) of dialogue that is on screen. Method: Chaume's typology, as reported in the open-access sources, has three parts. Lip synchrony adapts the translation to the on-screen character's articulatory movements, above all bilabial and labio-dental consonants and open vowels. Kinesic (kinetic) synchrony keeps the words logically consistent with the characters' gestures and body movements (for example a nod must not accompany 'no'). Isochrony matches the duration of the target speech phrases and pauses to the source; its absence is called the most noticeable sign of a poorly dubbed product, and the Persian study says the viewer notices when lips have closed but speech continues, or lips move in silence. Chaume's 2012 book defines synchronisation as the process of matching the translation to actors' body and articulatory movements in a st...
- articleHow exact must phonemes match for lip-sync in dubbing, and what do open-vowel, bilabial and viseme substitutions allow?
Problem: judging whether a dubbed word 'fits' the mouth. Conditions: visible mouth, usually close-up. Method: the guidance targets visually distinct sounds rather than identical ones: bilabials (open/closed lips), labio-dentals and open vowels are the most visible. Substitutions are allowed within a class: open vowels can be swapped, and a /p/ can be replaced by /m/, /b/, or the labiodentals /f/ or /v/. The viseme theory formalises this by grouping phonemes by lip shape; rounded and protruded vowels form the 'fourth viseme'. Example data (one Lithuanian dub of an English animated film, 476 stressed rounded/protruded vowel cases, 1 h 35 min): the translator used the fourth viseme in 46 percent of cases, the third in 32 percent, the second in 12 percent and the first in 10 percent; stress matched in 68 percent of cases. When a rounded vowel could not be matched, first- and second-viseme sounds fitted better than third-viseme sounds. Failure modes: matching spelling or phoneme identity...
- articleWhat do break, emphasis and prosody mean in W3C SSML 1.1, and how much is a TTS engine actually obliged to do with them?
Problem: control pause, stress, rate and pitch of synthetic speech portably. Conditions: engines that accept SSML. Method: <break/> is an empty element; strength takes none, x-weak, weak, medium (default), strong or x-strong, and time takes a duration (e.g. 250ms or 3s); if neither attribute is given the processor produces a break stronger than it otherwise would; if both are given the time sets the duration and the strength shapes other prosodic changes. <emphasis> requests prominence, but the engine decides how to render it because emphasis differs between languages, dialects and voices. <prosody> controls pitch, contour, range, rate, duration and volume; rate may be a percentage multiplier (100% = unchanged), volume a signed dB value (-6 dB roughly halves amplitude) or a label, and it is an error to use prosody with no attributes. The spec says all prosodic attribute values are indicative (the engine may clamp or substitute) and that authors are encouraged not to casually mix the...
- articleHow do Azure AI Speech and Google Cloud Text-to-Speech document emphasis, prosody and style control, and what are the caveats for HD or newer voices?
Problem: choose markup that the target voice honours. Conditions: Azure Speech SSML and Google Cloud TTS SSML as documented. Method (Azure): <prosody> adjusts pitch, contour, range, rate and volume (contour takes percent/pitch pairs); <emphasis> word-level stress tuning is documented only for en-US-GuyNeural, en-US-DavisNeural and en-US-JaneNeural, and the page warns low-pitch, short words may not be raised enough to notice. For HD voices (DragonHD family) expressive control moves to styles: <mstts:express-as style=...> or inline style markers such as [whispering]; a marker applies to all later sentences until reset with [Neutral], and \r\n, <p> and automatic sentence boundaries reset to default style while <break> does not. Style degree 0.01-2 is ignored if unsupported for the voice. (Google): the page states that not all elements of the W3C spec are supported; <emphasis> levels are strong, moderate, none, reduced; it advises using <emphasis> and <prosody> only around full sentence...
- articleWhich lip-sync tools can be used commercially (LatentSync, MuseTalk, Wav2Lip, SyncNet) and where do dependencies break that?
Problem. Code licence, checkpoint terms and dependency licences can differ. Conditions. Commercial or client delivery using open lip-sync tools. Findings from raw licence files and READMEs. LatentSync: LICENSE Apache 2.0; its data pipeline uses InsightFace landmarks (InsightFace pretrained models are non-commercial per its README, see C3-B571-06). MuseTalk: LICENSE MIT, README says no limit on academic or commercial use of the code, test data are non-commercial research only, and other open-source models used (whisper, ft-mse-vae, dwpose, S3FD) must comply with their licences. Wav2Lip: README prohibits commercial use (LRS2); no LICENSE file at the raw path. SyncNet python demo: MIT licence file read (Copyright 2016-present Joon Son Chung); the pretrained model's data terms were not checked. Method. Before use: (1) read each repo's LICENSE file, (2) list every downloaded checkpoint and its source page licence, (3) treat Wav2Lip as research only, (4) for MuseTalk and LatentSync confir...
- articleWhat are Wav2Lip's practical flags (pads, nosmooth, resize_factor), its training sanity thresholds, and why can't it be used commercially?
Problem. Older GAN lip-sync still appears in many pipelines; its failure modes and licence are often missed. Conditions. Wav2Lip open-source release trained on LRS2. Method. inference.py takes --checkpoint_path, --face (video or image) and --audio (any FFmpeg-readable file or a video whose audio is extracted). Tips from the README: adjust --pads (e.g. --pads 0 20 0 0 adds bottom padding to include the chin); if the mouth is dislocated or two mouths appear, over-smoothing of face detections is the cause - use --nosmooth; use --resize_factor to lower resolution because models were trained on lower-resolution faces, and 720p often looks better than 1080p; the non-GAN model needs more tuning but can be better; Wav2Lip+GAN trades slightly inferior lip-sync for better visual quality. Training sanity: expert-discriminator eval loss about 0.25 and Wav2Lip eval sync loss about 0.2 are said to be needed for good results; fine-tuning on a few minutes of one speaker is stated not to work. Right...
- articleHow does MuseTalk define its face region and mouth-openness control, what fps does it expect, what limits does it state, and what does its MIT licence not cover?
Problem. Real-time or near-real-time dubbing of existing footage. Conditions. MuseTalk 1.0/1.5 (Tencent Music), latent-space inpainting of the lower face with a 256x256 face region, Whisper audio features. Method. (1) Use 25 fps input: the README says this matches training fps; convert lower-fps video with interpolation or ffmpeg. (2) The face-region centre matters a lot: in v1.0 use bbox_shift (positive moves the mask's upper bound toward the lower half and increases mouth openness; negative decreases it), e.g. --bbox_shift -7. (3) In the Gradio demo, generate only the first frame to tune parameters before running the full video. (4) For higher resolution, the README suggests adding a super-resolution model such as GFPGAN. Failure modes stated. Identity details such as moustache, lip shape and lip colour are not well preserved; resolution bound of the 256x256 face region. Paper abstract frames the trade-off: GAN-based real-time methods sacrifice lip-sync accuracy or dental detail. ...
- articleWhat does ElevenLabs say about emotion and pace for its newer TTS models, and what happens to emotional cue text?
Problem: get emotion and pacing without SSML on ElevenLabs. Conditions: ElevenLabs best-practices page (fetched 23 Oct 2026); prior finding covers the SSML-break limitation. Method: convey emotion through narrative context or explicit dialogue tags (e.g. 'she asked, her voice trembling with sadness'); explicit tags give more predictable results than context alone, but the model will still speak the emotional delivery guides aloud, which can be removed in post-production. Pace is strongly influenced by the audio used to create the voice (use longer, continuous samples to avoid unnaturally fast speech); the speed setting ranges from 0.7 to 1.2 (default 1.0) and extreme values may affect quality; pacing can also be steered by writing in a natural narrative style, with ellipses for hesitation. The page also notes Director's Mode as upcoming. Use (inference): when using narrative tags, generate with the guide text and cut it out in editing, or record the line in two takes; keep speed wit...
- articleHow does Hume's Octave TTS take acting instructions (description, speed, trailing silence), and what limits does Hume state?
Problem: get a specific emotional performance and pacing from TTS. Conditions: Hume Octave TTS API. Method: per utterance, set (1) description: natural-language acting instructions (emotional tone, delivery style such as whispering or rushed, performance context such as speaking to a crowd); (2) speed: relative rate from 0.5 to 2.0 on a non-linear scale, 1.0 normal, with 2.0 not exactly twice as fast; (3) trailing_silence: seconds of silence added after the utterance; plus [pause] / [long pause] inside text. Hume's best practices: keep instructions concise, aim for no more than 100 characters (e.g. 'frightened, rushed' instead of a long sentence), use precise emotions (melancholy or frustrated rather than sad), and combine emotion with delivery style (e.g. excited but whispering). With no voice specified, the description acts as a voice prompt that creates a voice; without any instructions Octave infers delivery from the voice description and text. Limitation as fetched: description...
- articleHow do I direct delivery with OpenAI's gpt-4o-mini-tts 'instructions', and what does the page now say about its future?
Problem: control emotion and style of TTS speech by prompt. Conditions: the OpenAI Speech API (/v1/audio/speech) with gpt-4o-mini-tts. Method: pass an instructions string with the input text and a voice; the guide's example is 'Speak in a cheerful and positive tone.' The guide says the model lets you use prompts to control accent, emotional range, intonation, impressions, speed of speech, tone and whispering. The page presents prompt control as a gpt-4o-mini-tts feature; tts-1 and tts-1-hd are described only as lower-latency and higher-quality options with a smaller voice set. Voices are optimised for English. Usage policies require clear disclosure to end users that the voice is AI-generated. Important limitation as fetched: a banner says tts-1, tts-1-hd and gpt-4o-mini-tts are deprecated and will shut down on 6 January 2027, with migration to a realtime model via the Realtime API (a different API workflow, not supported through /v1/audio/speech). Use (inference): write short, conc...
- articleHow do UsdSemantics labels inherit, and what did the release notes change for UsdPhysics and render-settings handling between v25.05 and v26.11?
UsdSemantics labels inherit down the hierarchy by accumulating (descendants keep their own labels and gain their ancestors'), there is no registry of taxonomies, and all labels carry equal weight. Per the OpenUSD changelog: UsdPhysics gained a parsing utility and validators in 25.05, nested rigid bodies and articulation for kinematic bodies in 25.11, deprecations of the custom-token and loader names in 26.05, more validators in 26.08, and in 26.11 bodies with rigidBodyEnabled = false are treated as not applied. Render settings: in 25.11 RenderMan expects relationships rather than connections for filters and integrators; 26.03 added HdRenderSettingsSchema fields; 26.08 allows interactive rendering with a RenderSettings prim; 26.11 announces in-band transport through scene indices.
- articleWhich schemas were added or changed in OpenUSD releases from v25.02 to v26.11, and what is each for?
From OpenUSD's CHANGELOG at 5b3c21a: 24.11 added usdSemantics' multi-apply SemanticsLabelsAPI (shipped as semantics:labels:<taxonomy>, reversing the proposal's order); 25.02 added the usdview Resolved Labels row and an example asset; 25.05 a multi-apply AccessibilityAPI; 25.11 the uiHints classes; 26.03 the UsdVolParticleField family including 3D Gaussian splats; 26.05 an explicit UsdCollectionAPI mode; 26.08 LOD schemas, UsdProfiles and HydraRenderPassAPI; 26.11 UsdMediaAuthorshipAPI, the BackPlateAPI luma renames (gamma to power, lift to offset, gain to slope) and apiSchemaCanOnlyApplyTo for applied schemas.
- articleHow do practitioners' public accounts time a walk cycle (frames per step, on twos) and where do they differ from measurements?
Partially verified: the curator re-read none of the cited sources; S8, S9, S10, S3 rest on the producer's pinned reading. Public practitioner tutorials use 24 frames for two steps (12 frames per step, 'on the 12s'), with 8s for faster and 16s for slower walks; one stop-motion guide uses an eight-picture cycle for 12-15 fps. Measured steps at 24 fps are about 12-14 frames, so the craft default matches a cadence of 120 steps/min, the top of the measured range. The craft numbers are teaching conventions, not measurements.
- articleWhat contact and flight times and step rate does an open running study give, and how many frames is the flight phase?
Partially verified: the curator re-read none of the cited sources; S4, S5 rest on the producer's pinned reading. A PLoS ONE study with 1000 Hz high-speed video reports, for runners at 3.25 m/s on a treadmill, contact time 0.267 s, flight time 0.093 s and 166.8 steps/min. At 24 fps a step is about 8.6 frames with about 6.4 contact and 2.2 flight frames (author arithmetic). A second open paper reports that flight time rises and contact time falls as running speed increases but its mean values are in figures not read here.
- articleWhat AU names does a FACS practitioner assign to each ARKit blendshape, and which common FACS units has ARKit no shape for?
Melinda Ozel's ARKit-to-FACS cheat sheet (updated 19 Feb 2026) maps each ARKit shape to FACS action units and muscles, flags ambiguous rows (e.g. mouthClose as AU8 'but see notes') and lists FACS units it says ARKit lacks (including AU11, AU13, AU23, AU38).
- articleWhat do open-access papers that map face-tracker blendshapes to FACS action units report about methods and limits?
A CC BY Sensors 2026 study (PMC12899966) maps ARKit blend shapes to action units using a published guide (its ref. 11) and reports 68.3% seven-class posed-emotion accuracy against a 58.9% mean of three human raters, while stating that ARKit coefficients do not always map cleanly to FACS units.
- articleWhat are the ARKit 52 blendshape names, how do they relate to FACS and to VRM 1.0 preset expressions, and is there a published mapping?
ARKit documents 52 blend-shape locations (53 references including the initialiser); VRM 1.0 defines optional presets for five emotions, five vowels, three blinks, four look directions and neutral, and states there are no specific specifications for facial deformation, so a VRM preset name is a contract on meaning, not shape.
- articleWhat exactly does Blender's USD exporter write into UsdSkel joints, bindTransforms, restTransforms and blend shapes?
At Blender v5.2.2 (d13f752e) the USD exporter writes Skeleton.joints in pre-order bone-tree order but SkelAnimation.joints in pose-channel order, writes bindTransforms from bone arm_mat and restTransforms from the parent-relative pose matrix when a pose channel exists (so the rest attribute reflects the current pose, not necessarily the rest pose), stores bone lengths as a Skeleton primvar, and authors blend shapes without inbetweens in the files read (static reading).
- articleAfter automatic rigging or auto weights, how do I check and fix the skin weights in Blender?
Problem. Auto weights often deform badly. Conditions. Armature-deformed mesh in Blender. Method. (1) Parenting with Automatic Weights uses a distance-based 'bone heat' calculation; the manual warns it can produce overlaps, with symptoms visible when posing (parts do not deform as expected), and then weights must be edited by hand. (2) Enter Weight Paint Mode and inspect each bone's vertex group: blue is near 0.0, red near 1.0. (3) Weights usually have to be normalized for deformation; use Normalize All and Auto Normalize while painting. (4) Pose the rig through extreme poses (elbow, shoulder, hip, fingers) and look for tearing or collapse. Example. Parent mesh with automatic weights, pose the arms overhead, then paint fixes in problem vertex groups. Failure modes. Dense overlapping limbs and clothing; empty vertex groups for non-deform bones. Limitations. Manual text only; no test on a specific mesh was run here. Version/date. Manual source fetched 2026-10-23.
- articleWhat capture-stage production conditions did a practice-based study find helpful for getting cartoon-style (principle-driven) movement out of motion-capture performers?
Mohr (QUT, 2019) proposes four production conditions from four practice cycles: an 'animation performer' with movement training and animation knowledge; curated animated reference sent ahead and shown during capture; an optional pre-production capture of movement stylisations on a work-in-progress character; and gestural warm-ups with scaffolded actions. Supporting practices reported as helpful: overt movement, energetic actions first, goal-driven actions, a live projector view, and aesthetic movement rules per style. The thesis states the conditions have not yet been applied to a full production and that post-capture editing was not examined.
- articleWhat other openly readable scholarly sources critique or test the twelve principles for 3D animation, and what does each one actually cover (what transfers, what does not, evidence offered)?
Four sources were inspected beyond Mohr. Bishko (2007, Animation Journal) argues the principles are not complete movement concepts, can impose a style, and lack intent-to-action; it names two 3D CG films as applying them 'for the sake of creating a cartoony look' and is a film-analysis essay, not a study of 3D keyframe or mocap practice. Thesen (2020) argues the twelve do not apply in full to digital hand-drawn, stop-motion, experimental or digitally animated media and proposes a reorganisation; only the Crossref abstract was readable (publisher page returned 403). Carter (2016 QUT PhD) is confirmatory: frame-by-frame analysis of four feature films 'tests and confirms' validity for 3D CG and reinterprets appeal as aesthetic harmony; only the record page was read (PDF 47 MB, over the limit). Mou (2018) is an empirical keyframe-versus-mocap student study that mentions the principles once. No open source inspected tests each principle on 3D keyframe or mocap output.
- articleWhat exactly do the Mesh Cache modifier's Time and Factor modes compute for PC2 and MDD files, and is the PC2 expression ((time / fps) - start) / sampling consistent with the units the modifier and the exporter use?
Code reading at main commit f0e5cc32 (observed 2026-10-22, not executed). In Scene play mode the modifier sets time = ctime/fps for both Time and Factor, then time = Frame Scale x time - Frame Start. The PC2 Time branch then divides by fps again: frame = ((time/fps) - start)/sampling, whereas the MDD Time branch compares time (seconds) directly with the file's stored per-frame times and ignores fps. Blender's own PC2 exporter and manual define start and sampling in frames, so for exporter-written PC2 the Time branch mixes units unless fps = 1. Factor mode maps clamp(time, 0, 1) x frame_tot to a float index, so the last sample is reached at (N-1)/N and held to 1. No bug report or test mentions this (candidate 01). Whether this is intended for PC2 files from other tools is unverified.
- articleHow do ezc3d and BTK handle analog sample rate as an integer multiple of the point rate and a 59.94 Hz camera rate?
The C3D guide fixes analog sampling at an integer number of samples per 3D frame (header word 10) with a float 3D rate, so 59.94 Hz is representable and the analog rate is that multiple of 59.94. ezc3d 1.7.2 reconciles ANALOG:RATE/POINT:RATE with the header by truncating their quotient to an integer when no analog subframes are loaded, and compares point rates after truncation at four decimals; BTK derives samples per channel from header words, reads no ANALOG:RATE, and on write sets ANALOG:RATE to point rate times samples per frame. Neither code base rejects a non-integer ratio or special-cases 59.94.
- articleWhere can Winter's residual analysis and Challis's white-noise cutoff method be read openly, and what do those open sources say about their limits?
Openly readable substitutes for the classic cutoff-selection literature are a CC BY 4.0 notebook explaining Winter's residual analysis (noting it is known to oversmooth kinematic data) and a 1996 BIOMCH-L compilation on Winter/Jackson methods; the original Winter, Yu and Challis texts were not openly readable to producer or curator.
- articleDo ezc3d (Release_1.7.2) and BTK (master head) implement the C3D rule that the sign of POINT:SCALE selects float versus integer storage, and where do they disagree?
BTK takes the C3D storage sign from the header scale (words 7-8), warns when POINT:SCALE disagrees and keeps the header value, treating a positive scale as integer storage; ezc3d always writes a negative header scale (float storage). Files whose header and POINT:SCALE disagree can therefore be read differently by different libraries; check both values.
- articleWhat do Epic's Derived Data Cache docs say about how the DDC works, shared DDC configuration and diagnosing misses (UE 4.27 vs 5.3)?
The UE 5.3 DDC documentation describes a fastest-first cache hierarchy with asynchronous fill, disposable content regenerable from .uasset files, shared-DDC setup via a config path or UE-SharedDataCachePath (disabled with -ddc=noshared), and diagnosis through LogDerivedDataCache; apart from a KeyLength node hashing long keys, it does not say how keys are built or what invalidates entries.
- articleHow do Godot AnimationPlayer and AnimationTree divide playback, what are their time units, and what is OpenToonz's licence status?
Corrected 2026-10-23 - see C3-B642-07; the original statements below are kept for history and are superseded where the correction says so. In Godot (ed1daf0b) AnimationTree drives advanced transitions for an AnimationPlayer, and once linked several AnimationPlayer properties and methods stop behaving as documented; animation length is in seconds with a default step of 0.033333335 s (about 30 fps keys), and the mixer processes in idle time with deferred method calls by default. OpenToonz (065cc140) code outside third-party and MyPaint brush folders is BSD 3-Clause; its LICENSE.txt contains the full BSD text after third-party notes.
- articleHow does KHR_mesh_quantization interact with skinning, morph targets and animation, and what must an encoder do?
Corrected 2026-10-23 - see C3-B642-04; the original statements below are kept for history and are superseded where the correction says so. KHR_mesh_quantization lets POSITION, NORMAL, TANGENT and TEXCOORD (and morph deltas) use byte/short types and adds no new dequantisation transform: non-skinned meshes fold it into the node transform (possibly via an extra leaf node so existing animation is undisturbed), skinned meshes into inverseBindMatrices, and texture coordinates into KHR_texture_transform; signed-normalized decoding differs on OpenGL ES 2.0/WebGL1.
- articleWhat viseme vocabularies and timing outputs do Oculus Lipsync, Azure Speech, Amazon Polly and Rhubarb produce?
Corrected 2026-10-23 - see C3-B642-01 and C3-B642-02; the original statements below are kept for history and are superseded where the correction says so. Four public viseme outputs differ in vocabulary and time unit: Oculus Lipsync 15 named visemes (docs marked no longer updated and subject to removal); Azure 22 integer IDs (0 = silence) with offsets in 100-ns ticks, optional SVG (en-US only) or 60 fps blend-shape frames of 55 values; Amazon Polly speech marks with millisecond times and per-language viseme symbols (archived awsdocs guide); Rhubarb 6 basic + 3 optional shapes (A-F, G, H, X) with seconds-based TSV and a Preston Blair alias only for dat export.
- articleWhat licence does OpenToonz v1.8.0 carry in its LICENSE.txt? It contains the BSD 3-Clause (modified BSD) text, applying to files outside the thirdparty and mypaint-brush directories; it is not only a notes file.
Problem. C2-B14-D2-12 says the OpenToonz LICENSE.txt at v1.8.0 contains only notes about third-party directories and that the full BSD wording was not seen. Conditions. Licence inspection from the raw file. Method. Read the whole raw LICENSE.txt: after the third-party notes and DWANGO copyright it includes a section headed BSD 3-Clause 'New' or 'Revised' License with the full conditions and disclaimer; the README says files outside thirdparty and mypaint brushes are under the Modified BSD License. Failure modes. Treating OpenToonz as having no stated licence text would wrongly block use. Limitations. Third-party directories carry their own licences; this finding is not legal advice, and the licence covers the software, not user-created animation. Version/date. Tag v1.8.0; fetched 2026-10-23.
- articleDoes KHR_mesh_quantization allow unnormalised byte/short NORMAL and TANGENT, and is the extension optional? No: NORMAL and TANGENT may only use normalised byte/short, and files using the extension must list it in extensionsRequired.
Problem. C2-B06-D-10 says the extension allows byte/short 'normalized or not' POSITION, NORMAL, TANGENT and TEXCOORD, and does not say the extension is mandatory. Conditions. glTF assets using KHR_mesh_quantization. Method. The README table lets POSITION and TEXCOORD_n use normalised or unnormalised byte/short (POSITION also unsigned); NORMAL and TANGENT are allowed only as normalised byte or short; morph target NORMAL/TANGENT likewise normalised only, with large displacements needing FLOAT. Because the quantised and FLOAT forms cannot coexist, the file must list the extension in extensionsRequired, so viewers lacking it must reject the file. Failure modes. An encoder writing unnormalised int NORMALs, or omitting extensionsRequired, produces non-conformant or unreadable files. Limitations. Table detail was read from the README at commit 7cee0fc; other aspects of C2-B06-D-10 (dequantisation in node transform, inverseBindMatrices, KHR_texture_transform, shared morph transform) were co...
- articleIs the Azure-to-Oculus viseme mapping many-to-one only? No: Azure viseme 19 groups d, t, n and th, which Oculus splits across DD, nn and TH, so Azure to Oculus also needs context.
Problem. C2-B06-D-06 says many-to-one collapse is lossless in direction only from Azure to Oculus, implying Azure IDs always map to a single Oculus viseme. Conditions. Compare the Azure ID table with the Oculus viseme table. Method. Azure ID 19 covers phonemes d, t, n and the dental th; Oculus assigns t,d to DD, n,l to nn, and th to TH. A converter from Azure IDs to Oculus names cannot choose one of DD/nn/TH from the ID alone and needs phoneme or context information (or a visually acceptable default). Failure modes. A naive 22-to-15 lookup table will mislabel n/th frames as DD. Limitations. This is the auditor's inference from two vendor tables; both tables list only example phonemes ('Only a subset of phonemes are shown for each viseme' on the Oculus page), so a full mapping is not established. Version/date. Pages fetched 2026-10-23.
- articleIs Oculus Lipsync documentation marked end-of-life by Meta? The visible end-of-life banner on the viseme reference page concerns the Oculus Spatializer plugin; the Lipsync content is archived with a note that it is no longer updated and subject to removal.
Problem. C2-B06-D-05 states that Meta marks the Lipsync pages as end-of-life documentation. Conditions. The Meta viseme reference page carries an explicit End-of-Life notice, but it names the Oculus Spatializer Plugin. Method. Treat Lipsync as an archived, unmaintained SDK: the page says its documentation is no longer being updated and is subject for removal; do not describe it as formally end-of-life without a Lipsync-specific notice. Failure modes. Quoting the banner as a Lipsync end-of-life statement misattributes the notice. Limitations. Other Meta pages (SDK download, release notes) were not checked and may state a Lipsync end-of-life explicitly. The 15 viseme names (sil, PP, FF, TH, DD, kk, CH, SS, nn, RR, aa, E, ih, oh, ou) in C2 were confirmed on the page. Version/date. Page fetched 2026-10-23; the identical text was served from developer.oculus.com.
- articleDoes Azure Speech return viseme IDs, SVG and blend shapes for every voice and language? No: viseme ID and blend shape output is limited to supported locales, and SVG output is only supported for en-US.
Problem. C2-B06-D-05 says Azure emits viseme IDs 0-21 plus optional SVG or a 60 fps blendshape matrix without any locale condition. Conditions. The Azure viseme page restricts the outputs by locale. Method. Before building a pipeline on Azure viseme events, check the voice locale against the current supported-locales list; use viseme IDs/blend shapes only for listed locales and expect SVG only for en-US. Failure modes. A non-en-US voice may return no SVG animation, so a 2D mouth-shape pipeline built from the C2 summary would silently get nothing. Limitations. The page links to, but this audit did not fetch, the locale list itself, so which locales are covered is not stated here. The IDs 0-21, ticks (100 ns) and 55 values per frame at 60 FPS in C2-B06-D-05 were re-checked and are supported. Version/date. Page fetched 2026-10-23; no version stamp on the page.
- articleWhat do Houdini, Maya and Epic documents say about carrying hair/groom curves and widths through Alembic and USD?
Partially verified: the curator re-read S18, S19, S22; S20, S21 were not re-read by the curator and rest on the producer's pinned reading. Houdini 22.0 imports Alembic curve sets as open polygons (no separate groom type in that mapping); its SOP Import LOP writes cubic-only BasisCurves for Hydra or NurbsCurves for round-tripping, and offers Set Missing Widths because USD's fallback width is 1.0. Unreal's Alembic groom importer reads ICurves, converts DCC width to groom_width without overwriting an authored groom_width, and falls back to 1 cm when no width exists, so missing widths behave differently in USD (1.0 scene unit) and Unreal grooms (1 cm).
- articleWhat columns does a Japanese-style animation time sheet have, and what goes in each, according to an open vendor tutorial?
Partially verified: the curator re-read S23, S24; S25 was not re-read by the curator and rests on the producer's pinned reading. CELSYS's official tutorial for the Toei Animation Digital Timesheet documents Action (key drawing), cell (in-between), CAM (camera work), Direction (shooting instruction) and Sound (name + dialogue/SE) columns plus BOOK layers, and CLIP STUDIO PAINT timeline data exports as .xdts for import into the Action or Cell field.
- articleWhat do SAG-AFTRA's contract bulletins (2024) and the 2026 TV/Theatrical MOA say about digital replicas of voice and likeness: definitions, notice, consent, pay and strikes?
Partially verified: the curator re-read S12; S10, S8 were not re-read by the curator and rest on the producer's pinned reading. Under the 2026 SAG-AFTRA MOA (1 July 2026 to 30 June 2030), creating an employment-based digital replica needs at least 48 hours' notice and consent, scans need an articulable business reason, and post-production alterations for noise reduction, timing, pitch or tone and clarity (among others) do not need replica consent. This matters for dialogue cleanup on SAG-AFTRA-covered pictures.
- articleWhat do the UsdSkel schema docs require for joint order, bind/rest transforms and inbetweens, and how do Maya-USD and Houdini KineFX treat them?
The OpenUSD v26.08 UsdSkel overview defines bindTransforms as world-space and restTransforms as local-space (both in joints order; rest optional only with a complete non-sparse animation), the schema supports inbetween blend shapes, and maya-usd (cfdac964) writes them with weight-derived names, unit-scaled offsets and normal offsets.
- articleAI music video pipeline (Suno + Seedance audio-sync): feed vocal-only stems or the model lip-syncs the instruments; fix drift with a dedicated lip-sync pass and edit to the track
Creator-reported: statements attributed to the creator(s) come from discovery's reading of auto-caption transcript excerpts; the curator checked the video metadata (title, date, length) and any cited documentation pages, not the spoken claims. Nothing was tested; promotional or sponsored framing applies where stated. R2 (Apr 2026): lyrics drafted with an LLM, song made in Suno v5.5 with a structured prompt (concept, voices, chorus/outro, BPM, language) and "exclude styles" used as a negative prompt. Characters: character sheets, then many photos per character (33, 41 and 57) to train a custom character model on the host platform. Lip-sync shots framed as close wide-angle (8 mm-style) singing-to-camera. Key failure: when the full mix is uploaded, Seedance lip-syncs instruments too, and it can alter or invent lyrics in the audio track; fix by exporting Suno stems (Pro tier) and uploading the vocal stem only, then running a separate lip-sync pass with the same vocal stem. Dance shots c...
- articleWhat capture, performer and identity conditions does Epic say MetaHuman Animator needs to solve facial performance onto a rig, and what degrades or fails the solve?
Partially verified: the curator re-read S17, S18, S19; S20 was not re-read by the curator and rests on the producer's pinned reading. MetaHuman Animator guidance sets footage requirements (HD/4K 60 fps, H.264 CRF 18 or better, about 25 Mbps for HD; face at least 1/30 of frame width and height; a face under 40x80 px likely fails detection), a stable camera, unoccluded faces, performer limits (limited stubble, no glasses, heavy makeup or piercings; adult faces only; markers unnecessary) and an identity take per device and appearance (neutral, strongly recommended teeth pose, left/right views for iPhone). No solve-error numbers are given.
- articleWhat do later sources add or criticise about applying the twelve animation principles beyond 1987 3D keyframing?
Partially verified: the curator re-read S15; S13, S16 were not re-read by the curator and rest on the producer's pinned reading. A systematic review of 27 human-robot interaction studies (arXiv v4, 2019; arXiv non-exclusive licence) frames robot motion with the twelve principles and its count table shows no reviewed study for Timing, Staging, Solid Drawing or Appeal, while Secondary Action and Straight Ahead/Pose to Pose were most used.
- articleWhat do ARKit and MediaPipe Face Landmarker document about blendshape count, value range, left/right meaning, coordinate frames and frame timing?
Partially verified: the curator re-read S27, S29, S30; S28, S31, S32 were not re-read by the curator and rest on the producer's pinned reading. ARKit and MediaPipe both expose 52 blendshape coefficients; ARKit groups its constants (eyes 7+7, mouth/jaw 27, brows/cheeks/nose 10, tongue 1) in a right-handed metre face space, and MediaPipe's Left/Right names refer to the subject, so a mirrored (selfie) input swaps them. Neither document states that the names or semantics map one-to-one.