/** * Paper 6 fixed runtime-pose publication runner. * * This is deliberately narrower than a rendered retargeting benchmark. It * drives the shipped MixamoRetargeter -> AnimationEngine.playSkeletal() -> * BoneSystem path for a fixed three-bone, no-shear hierarchy and records its * local/world pose bytes. Rendering, skinning, independent implementations, * SLERP, and cross-vendor identity are explicit non-claims in the receipt. */ import { type BoneTransform } from '../../BoneSystem'; declare const BONE_ORDER: readonly ["hips", "leftUpperLeg", "leftLowerLeg"]; declare const TRANSFORM_FIELDS: readonly ["tx", "ty", "tz", "rx", "ry", "rz", "rw", "sx", "sy", "sz"]; type BoneId = (typeof BONE_ORDER)[number]; export interface Paper6PoseSnapshot { readonly local: BoneTransform; readonly world: BoneTransform; } export interface Paper6RuntimePoseRun { readonly poseHash: string; readonly poseBytes: Uint8Array; readonly snapshots: Readonly>; } export interface Paper6RuntimePoseArtifact { readonly schema_version: 'paper-6-runtime-pose-v1'; readonly benchmark: 'paper-6-runtime-pose-publication'; readonly paper_ref: 'research/paper-6-animation-sca.tex'; readonly harness: 'packages/engine/src/animation/paper/benchmarks/p6-runtime-pose-publication.ts'; readonly runtime_path: readonly [ 'MixamoRetargeter.retarget', 'AnimationEngine.playSkeletal/update', 'AnimClip.sampleValues', 'BoneSystem.applyLocalTransforms/updateWorldTransforms' ]; readonly fixture: { readonly topology: 'hips -> leftUpperLeg -> leftLowerLeg'; readonly bone_order: readonly BoneId[]; readonly sample_time_seconds: number; readonly transform_fields_per_local_or_world_pose: typeof TRANSFORM_FIELDS; readonly packed_views_per_bone: readonly ['local', 'world']; readonly encoding: 'IEEE-754 binary32 little-endian'; readonly canonicalization: 'abs(value)<1e-7 => +0; quaternion sign w>=0'; readonly pose_bytes: number; readonly hierarchy_scope: 'compact TRS with identity scale; no shear'; }; readonly verification: { readonly expected_pose_asserted: true; readonly repeat_runs: number; readonly unique_pose_hashes: number; readonly pose_hash: string; readonly negative_control: 'root rotation removed'; readonly negative_control_hash: string; readonly negative_control_diverged: true; readonly negative_control_child_world_position_changed: true; readonly negative_control_child_world_rotation_changed: true; }; readonly expected_pose: Readonly>; readonly claims: { readonly same_process_fixed_fixture_pose_identity: true; readonly quaternion_nlerp_local_sampling: true; readonly hamilton_parent_child_rotation: true; readonly parent_rotated_child_offsets: true; readonly rendered: false; readonly skinning_palette_verified: false; readonly general_rig_or_nonuniform_scale_guarantee: false; readonly independent_engine_or_implementation: false; readonly gpu_or_wgsl: false; readonly cross_browser_vendor_or_machine_identity: false; readonly slerp: false; readonly minimax_slerp: false; }; readonly environment: { readonly execution: 'single-process-cpu-javascript'; readonly os: string; readonly arch: string; readonly cpu_model: string; readonly logical_cores: number; readonly node: string; }; readonly measured_at: string; } export declare function runPaper6RuntimePoseFixture(removeRootRotation?: boolean): Paper6RuntimePoseRun; export declare function runPaper6RuntimePoseBenchmark(): Paper6RuntimePoseArtifact; export declare function writePaper6RuntimePoseArtifacts(artifact: Paper6RuntimePoseArtifact, outPaths?: readonly string[]): void; export {}; //# sourceMappingURL=p6-runtime-pose-publication.d.ts.map