Close HyperTwist Phase 3R packet 3R-E
This commit is contained in:
parent
f4648ebce4
commit
ba262b7f82
24 changed files with 1791 additions and 168 deletions
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"generated_at": "2026-05-13T14:31:59.5116632Z",
|
||||
"generated_at": "2026-05-13T16:20:00Z",
|
||||
"slice": "catalog-materialization",
|
||||
"slice_status": "closed",
|
||||
"counts": {
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
"track_manifests": 14,
|
||||
"deck_import_specs": 498,
|
||||
"runtime_content_bundles": 498,
|
||||
"reference_targets": 23,
|
||||
"reference_targets": 29,
|
||||
"overlap_pruned_exclusions": 29
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"generated_at": "2026-05-13T14:31:59.4856400Z",
|
||||
"generated_at": "2026-05-13T16:20:00Z",
|
||||
"reference_targets": [
|
||||
{
|
||||
"ReferenceTargetId": "reference/speedcubedb-course-reference-page-speedcubedb-root",
|
||||
|
|
@ -930,10 +930,258 @@
|
|||
"family": "docs-demo-separation",
|
||||
"subset": null
|
||||
},
|
||||
"MaterializationNotes": [
|
||||
"MaterializationNotes": [
|
||||
"Preserve bounded docs/demo separation semantics while rewriting the actual support copy and shell in first-party HyperTwist language.",
|
||||
"This target keeps modelviewer.dev explicitly subordinate to the landed browser viewer lane."
|
||||
]
|
||||
},
|
||||
{
|
||||
"ReferenceTargetId": "reference/met4citizen-talkinghead-companion-reference-page-narration",
|
||||
"SurfaceType": "companion-reference",
|
||||
"TrackTitle": "Embodied Companion and Narrated Coaching",
|
||||
"ItemTitle": "Embodied Companion Narration",
|
||||
"IncorporationChannel": "narration-contract",
|
||||
"TargetAssetFamily": "companion-note",
|
||||
"PuzzleFamily": "Other",
|
||||
"NotationProfile": "family-specific",
|
||||
"SourceAttribution": {
|
||||
"SourceMode": "DirectDonor",
|
||||
"SourceRepo": "met4citizen/TalkingHead",
|
||||
"SourceLicense": "MIT",
|
||||
"SourceTrackId": "companion/narration-contract",
|
||||
"SourceDeckId": "",
|
||||
"SourceCaseId": "",
|
||||
"SourceNotes": "First-party HyperTwist narration target preserving queued coach speech, subtitle timing, viseme alignment, and gesture-aware companion presentation from the retained TalkingHead lane."
|
||||
},
|
||||
"PreserveFactualElements": [
|
||||
"queued speech lifecycle",
|
||||
"subtitle timing",
|
||||
"viseme alignment",
|
||||
"gesture and mood cues"
|
||||
],
|
||||
"RewriteRequiredElements": [
|
||||
"all donor example-shell framing",
|
||||
"all donor vendor-specific copy",
|
||||
"all donor avatar-demo wording"
|
||||
],
|
||||
"ContentSourceFile": "./raw-extracts/met4citizen-talkinghead-reference-pages.jsonl",
|
||||
"MatchFilter": {
|
||||
"source": "met4citizen/TalkingHead",
|
||||
"source_scope": "repo-backed",
|
||||
"structure_template": "embodied-companion-reference-page",
|
||||
"family": "embodied-companion-narration",
|
||||
"subset": null
|
||||
},
|
||||
"MaterializationNotes": [
|
||||
"Preserve bounded coach narration semantics while rewriting the actual companion shell in first-party HyperTwist terms.",
|
||||
"This target pairs with the compiled Phase 3R-E narration contract and runtime access layer."
|
||||
]
|
||||
},
|
||||
{
|
||||
"ReferenceTargetId": "reference/met4citizen-talkinghead-companion-subtitle-reference-page-sync",
|
||||
"SurfaceType": "companion-subtitle-reference",
|
||||
"TrackTitle": "Embodied Companion and Narrated Coaching",
|
||||
"ItemTitle": "Subtitle and Viseme Synchronization",
|
||||
"IncorporationChannel": "subtitle-sync-contract",
|
||||
"TargetAssetFamily": "subtitle-checklist",
|
||||
"PuzzleFamily": "Other",
|
||||
"NotationProfile": "family-specific",
|
||||
"SourceAttribution": {
|
||||
"SourceMode": "DirectDonor",
|
||||
"SourceRepo": "met4citizen/TalkingHead",
|
||||
"SourceLicense": "MIT",
|
||||
"SourceTrackId": "companion/subtitle-and-viseme-sync",
|
||||
"SourceDeckId": "",
|
||||
"SourceCaseId": "",
|
||||
"SourceNotes": "First-party HyperTwist subtitle target preserving bounded caption timing, marker sync, and viseme-envelope behavior from the retained TalkingHead lane."
|
||||
},
|
||||
"PreserveFactualElements": [
|
||||
"word-level subtitle cues",
|
||||
"marker sync",
|
||||
"blendshape viseme envelopes"
|
||||
],
|
||||
"RewriteRequiredElements": [
|
||||
"all donor UI wording",
|
||||
"all donor demo captions",
|
||||
"all donor tutorial framing"
|
||||
],
|
||||
"ContentSourceFile": "./raw-extracts/met4citizen-talkinghead-reference-pages.jsonl",
|
||||
"MatchFilter": {
|
||||
"source": "met4citizen/TalkingHead",
|
||||
"source_scope": "repo-backed",
|
||||
"structure_template": "companion-subtitle-reference-page",
|
||||
"family": "subtitle-and-viseme-sync",
|
||||
"subset": null
|
||||
},
|
||||
"MaterializationNotes": [
|
||||
"Preserve bounded subtitle and viseme timing semantics while rewriting the surfaced cue shell in first-party HyperTwist language.",
|
||||
"This target pairs with the compiled Phase 3R-E subtitle and viseme reference bundle."
|
||||
]
|
||||
},
|
||||
{
|
||||
"ReferenceTargetId": "reference/met4citizen-talkinghead-companion-avatar-reference-page-embed",
|
||||
"SurfaceType": "companion-avatar-reference",
|
||||
"TrackTitle": "Embodied Companion and Narrated Coaching",
|
||||
"ItemTitle": "Avatar-Only Embed Contract",
|
||||
"IncorporationChannel": "avatar-embed-contract",
|
||||
"TargetAssetFamily": "embed-note",
|
||||
"PuzzleFamily": "Other",
|
||||
"NotationProfile": "family-specific",
|
||||
"SourceAttribution": {
|
||||
"SourceMode": "DirectDonor",
|
||||
"SourceRepo": "met4citizen/TalkingHead",
|
||||
"SourceLicense": "MIT",
|
||||
"SourceTrackId": "companion/avatar-only-embed",
|
||||
"SourceDeckId": "",
|
||||
"SourceCaseId": "",
|
||||
"SourceNotes": "First-party HyperTwist embed target preserving bounded external-scene avatar composition, retargeting, and camera-safe companion presence from the retained TalkingHead lane."
|
||||
},
|
||||
"PreserveFactualElements": [
|
||||
"external scene embedding",
|
||||
"camera-safe avatar composition",
|
||||
"retargeted motion and pose"
|
||||
],
|
||||
"RewriteRequiredElements": [
|
||||
"all donor asset assumptions",
|
||||
"all donor demo shell framing",
|
||||
"all donor avatar picker UX"
|
||||
],
|
||||
"ContentSourceFile": "./raw-extracts/met4citizen-talkinghead-reference-pages.jsonl",
|
||||
"MatchFilter": {
|
||||
"source": "met4citizen/TalkingHead",
|
||||
"source_scope": "repo-backed",
|
||||
"structure_template": "companion-avatar-reference-page",
|
||||
"family": "avatar-only-embedding",
|
||||
"subset": null
|
||||
},
|
||||
"MaterializationNotes": [
|
||||
"Preserve bounded avatar-only embedding semantics while rewriting the actual companion scene shell in first-party HyperTwist terms.",
|
||||
"This target pairs with the compiled Phase 3R-E avatar embed contract."
|
||||
]
|
||||
},
|
||||
{
|
||||
"ReferenceTargetId": "reference/met4citizen-talkinghead-companion-gesture-reference-page-presets",
|
||||
"SurfaceType": "companion-gesture-reference",
|
||||
"TrackTitle": "Embodied Companion and Narrated Coaching",
|
||||
"ItemTitle": "Gesture, Mood, and Pose Surface",
|
||||
"IncorporationChannel": "gesture-mood-contract",
|
||||
"TargetAssetFamily": "gesture-note",
|
||||
"PuzzleFamily": "Other",
|
||||
"NotationProfile": "family-specific",
|
||||
"SourceAttribution": {
|
||||
"SourceMode": "DirectDonor",
|
||||
"SourceRepo": "met4citizen/TalkingHead",
|
||||
"SourceLicense": "MIT",
|
||||
"SourceTrackId": "companion/gesture-mood-and-pose",
|
||||
"SourceDeckId": "",
|
||||
"SourceCaseId": "",
|
||||
"SourceNotes": "First-party HyperTwist gesture target preserving bounded coach acknowledgement, focus-callout, celebration, and mood-switching semantics from the retained TalkingHead lane."
|
||||
},
|
||||
"PreserveFactualElements": [
|
||||
"gesture presets",
|
||||
"mood switching",
|
||||
"coach-facing pose cues"
|
||||
],
|
||||
"RewriteRequiredElements": [
|
||||
"all donor animation-demo framing",
|
||||
"all donor shell wording",
|
||||
"all donor example choreography copy"
|
||||
],
|
||||
"ContentSourceFile": "./raw-extracts/met4citizen-talkinghead-reference-pages.jsonl",
|
||||
"MatchFilter": {
|
||||
"source": "met4citizen/TalkingHead",
|
||||
"source_scope": "repo-backed",
|
||||
"structure_template": "companion-gesture-reference-page",
|
||||
"family": "gesture-mood-and-pose",
|
||||
"subset": null
|
||||
},
|
||||
"MaterializationNotes": [
|
||||
"Preserve bounded gesture, mood, and pose semantics while rewriting the actual coach-presence shell in first-party HyperTwist language.",
|
||||
"This target keeps expressive presentation inside the embodied companion lane rather than spreading it into unrelated owners."
|
||||
]
|
||||
},
|
||||
{
|
||||
"ReferenceTargetId": "reference/met4citizen-talkinghead-companion-listening-reference-page-lifecycle",
|
||||
"SurfaceType": "companion-listening-reference",
|
||||
"TrackTitle": "Embodied Companion and Narrated Coaching",
|
||||
"ItemTitle": "Streaming and Listening Lifecycle",
|
||||
"IncorporationChannel": "listening-lifecycle-contract",
|
||||
"TargetAssetFamily": "listening-note",
|
||||
"PuzzleFamily": "Other",
|
||||
"NotationProfile": "family-specific",
|
||||
"SourceAttribution": {
|
||||
"SourceMode": "DirectDonor",
|
||||
"SourceRepo": "met4citizen/TalkingHead",
|
||||
"SourceLicense": "MIT",
|
||||
"SourceTrackId": "companion/streaming-and-listening-lifecycle",
|
||||
"SourceDeckId": "",
|
||||
"SourceCaseId": "",
|
||||
"SourceNotes": "First-party HyperTwist listening target preserving bounded streaming playback, queue underrun handling, and microphone threshold-gating semantics from the retained TalkingHead lane."
|
||||
},
|
||||
"PreserveFactualElements": [
|
||||
"audio stream buffering",
|
||||
"queue underrun handling",
|
||||
"listening thresholds",
|
||||
"microphone handoff"
|
||||
],
|
||||
"RewriteRequiredElements": [
|
||||
"all donor vendor tutorial text",
|
||||
"all donor example shell framing",
|
||||
"all donor microphone-demo wording"
|
||||
],
|
||||
"ContentSourceFile": "./raw-extracts/met4citizen-talkinghead-reference-pages.jsonl",
|
||||
"MatchFilter": {
|
||||
"source": "met4citizen/TalkingHead",
|
||||
"source_scope": "repo-backed",
|
||||
"structure_template": "companion-listening-reference-page",
|
||||
"family": "streaming-and-listening-lifecycle",
|
||||
"subset": null
|
||||
},
|
||||
"MaterializationNotes": [
|
||||
"Preserve bounded streaming and listening semantics while rewriting the surfaced audio and microphone shell in first-party HyperTwist terms.",
|
||||
"This target pairs with the compiled Phase 3R-E queue lifecycle and listening contract surfaces."
|
||||
]
|
||||
},
|
||||
{
|
||||
"ReferenceTargetId": "reference/met4citizen-talkinghead-companion-boundary-reference-page-adapter",
|
||||
"SurfaceType": "companion-boundary-reference",
|
||||
"TrackTitle": "Embodied Companion and Narrated Coaching",
|
||||
"ItemTitle": "TTS and Asset Adapter Boundary",
|
||||
"IncorporationChannel": "vendor-adapter-boundary",
|
||||
"TargetAssetFamily": "boundary-note",
|
||||
"PuzzleFamily": "Other",
|
||||
"NotationProfile": "family-specific",
|
||||
"SourceAttribution": {
|
||||
"SourceMode": "DirectDonor",
|
||||
"SourceRepo": "met4citizen/TalkingHead",
|
||||
"SourceLicense": "MIT",
|
||||
"SourceTrackId": "companion/tts-and-asset-adapter-boundary",
|
||||
"SourceDeckId": "",
|
||||
"SourceCaseId": "",
|
||||
"SourceNotes": "First-party HyperTwist boundary target preserving configurable TTS, JWT, avatar, and streaming seams while keeping donor examples and sample assets explicitly outside the shipped companion lane."
|
||||
},
|
||||
"PreserveFactualElements": [
|
||||
"replaceable voice-service fields",
|
||||
"asset-seam boundaries",
|
||||
"demo-only shell separation"
|
||||
],
|
||||
"RewriteRequiredElements": [
|
||||
"all donor vendor branding",
|
||||
"all donor example copy",
|
||||
"all donor sample-asset assumptions"
|
||||
],
|
||||
"ContentSourceFile": "./raw-extracts/met4citizen-talkinghead-reference-pages.jsonl",
|
||||
"MatchFilter": {
|
||||
"source": "met4citizen/TalkingHead",
|
||||
"source_scope": "repo-backed",
|
||||
"structure_template": "companion-boundary-reference-page",
|
||||
"family": "tts-and-asset-adapter-boundary",
|
||||
"subset": null
|
||||
},
|
||||
"MaterializationNotes": [
|
||||
"Preserve bounded TTS and asset-adapter semantics while rewriting the surfaced configuration shell in first-party HyperTwist language.",
|
||||
"This target keeps sample avatars, vendor wiring, and donor examples subordinate to the landed companion owner."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
{"source":"met4citizen/TalkingHead","source_scope":"repo-backed","family":"embodied-companion-narration","subset":"narration","page_id":"embodied-companion-narration","page_title":"Embodied Companion Narration Contract","surface_type":"companion-reference","origin_paths":["C:\\Workspaces\\HyperTwist\\mirrors\\permissive\\met4citizen\\TalkingHead\\modules\\talkinghead.mjs"],"preserve_factual_elements":["queued speech lifecycle","subtitle timing","viseme alignment","gesture and mood cues"],"notes":"Source-backed narration target for first-party HyperTwist coach speech, subtitle synchronization, viseme timing, and gesture-aware companion presentation without promoting the donor demo shell."}
|
||||
{"source":"met4citizen/TalkingHead","source_scope":"repo-backed","family":"subtitle-and-viseme-sync","subset":"subtitle","page_id":"subtitle-and-viseme-sync","page_title":"Subtitle and Viseme Synchronization","surface_type":"companion-subtitle-reference","origin_paths":["C:\\Workspaces\\HyperTwist\\mirrors\\permissive\\met4citizen\\TalkingHead\\modules\\talkinghead.mjs","C:\\Workspaces\\HyperTwist\\mirrors\\permissive\\met4citizen\\TalkingHead\\modules\\lipsync-en.mjs"],"preserve_factual_elements":["word-level subtitle cues","marker sync","blendshape viseme envelopes"],"notes":"Source-backed subtitle and viseme target for first-party HyperTwist caption timing, viseme emission, and marker-aligned coach playback beneath the embodied companion lane."}
|
||||
{"source":"met4citizen/TalkingHead","source_scope":"repo-backed","family":"avatar-only-embedding","subset":"embed","page_id":"avatar-only-embed","page_title":"Avatar-Only Embed Contract","surface_type":"companion-avatar-reference","origin_paths":["C:\\Workspaces\\HyperTwist\\mirrors\\permissive\\met4citizen\\TalkingHead\\modules\\talkinghead.mjs","C:\\Workspaces\\HyperTwist\\mirrors\\permissive\\met4citizen\\TalkingHead\\modules\\retargeter.mjs"],"preserve_factual_elements":["external scene embedding","camera-safe avatar composition","retargeted motion and pose"],"notes":"Source-backed avatar-only embed target for first-party HyperTwist external-scene companion presence, retargeting-aware motion, and bounded camera framing."}
|
||||
{"source":"met4citizen/TalkingHead","source_scope":"repo-backed","family":"gesture-mood-and-pose","subset":"gesture","page_id":"gesture-mood-and-pose","page_title":"Gesture, Mood, and Pose Surface","surface_type":"companion-gesture-reference","origin_paths":["C:\\Workspaces\\HyperTwist\\mirrors\\permissive\\met4citizen\\TalkingHead\\modules\\talkinghead.mjs"],"preserve_factual_elements":["gesture presets","mood switching","coach-facing pose cues"],"notes":"Source-backed gesture and mood target for first-party HyperTwist coach acknowledgements, focus callouts, celebration cues, and supportive pose changes."}
|
||||
{"source":"met4citizen/TalkingHead","source_scope":"repo-backed","family":"streaming-and-listening-lifecycle","subset":"listening","page_id":"streaming-and-listening-lifecycle","page_title":"Streaming and Listening Lifecycle","surface_type":"companion-listening-reference","origin_paths":["C:\\Workspaces\\HyperTwist\\mirrors\\permissive\\met4citizen\\TalkingHead\\modules\\talkinghead.mjs","C:\\Workspaces\\HyperTwist\\mirrors\\permissive\\met4citizen\\TalkingHead\\tests\\streaming-tests.html","C:\\Workspaces\\HyperTwist\\mirrors\\permissive\\met4citizen\\TalkingHead\\examples\\azure-audio-streaming.html"],"preserve_factual_elements":["audio stream buffering","queue underrun handling","listening thresholds","microphone handoff"],"notes":"Source-backed streaming and listening target for first-party HyperTwist low-latency coach playback, queue lifecycle metrics, and microphone threshold gating."}
|
||||
{"source":"met4citizen/TalkingHead","source_scope":"repo-backed","family":"tts-and-asset-adapter-boundary","subset":"boundary","page_id":"tts-and-asset-adapter-boundary","page_title":"TTS and Asset Adapter Boundary","surface_type":"companion-boundary-reference","origin_paths":["C:\\Workspaces\\HyperTwist\\mirrors\\permissive\\met4citizen\\TalkingHead\\README.md","C:\\Workspaces\\HyperTwist\\mirrors\\permissive\\met4citizen\\TalkingHead\\modules\\talkinghead.mjs","C:\\Workspaces\\HyperTwist\\mirrors\\permissive\\met4citizen\\TalkingHead\\examples\\azure-audio-streaming.html"],"preserve_factual_elements":["replaceable voice-service fields","asset-seam boundaries","demo-only shell separation"],"notes":"Source-backed boundary target showing which voice-service, avatar, and example-shell seams stay replaceable and outside the shippable first-party HyperTwist embodied companion owner."}
|
||||
|
|
@ -0,0 +1,622 @@
|
|||
#include "HyperTwistTraining/HyperTwistTrainingCompanionLibrary.h"
|
||||
|
||||
namespace HyperTwistTrainingCompanionLibraryInternal
|
||||
{
|
||||
FHyperTwistTrainingSourceAttribution MakeAttribution(
|
||||
const FString& TrackId,
|
||||
const FString& Notes
|
||||
)
|
||||
{
|
||||
FHyperTwistTrainingSourceAttribution Attribution;
|
||||
Attribution.SourceMode = EHyperTwistTrainingSourceMode::DirectDonor;
|
||||
Attribution.SourceRepo = TEXT("met4citizen/TalkingHead");
|
||||
Attribution.SourceLicense = TEXT("MIT");
|
||||
Attribution.SourceTrackId = TrackId;
|
||||
Attribution.SourceNotes = Notes;
|
||||
return Attribution;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCompanionSpeechInputReference MakeSpeechInput(
|
||||
const FString& InputId,
|
||||
const FString& Label,
|
||||
const TArray<FString>& InputKinds,
|
||||
const TArray<FString>& ConfigFields,
|
||||
const FString& Summary,
|
||||
const FHyperTwistTrainingSourceAttribution& SourceAttribution
|
||||
)
|
||||
{
|
||||
FHyperTwistTrainingCompanionSpeechInputReference Input;
|
||||
Input.InputId = InputId;
|
||||
Input.Label = Label;
|
||||
Input.InputKinds = InputKinds;
|
||||
Input.ConfigFields = ConfigFields;
|
||||
Input.Summary = Summary;
|
||||
Input.SourceAttribution = SourceAttribution;
|
||||
return Input;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCompanionQueueLifecycleState MakeQueueState(
|
||||
const FString& StateId,
|
||||
const FString& Label,
|
||||
const FString& Trigger,
|
||||
const FString& OutputSurface,
|
||||
const TArray<FString>& MetricLabels,
|
||||
const FHyperTwistTrainingSourceAttribution& SourceAttribution
|
||||
)
|
||||
{
|
||||
FHyperTwistTrainingCompanionQueueLifecycleState State;
|
||||
State.StateId = StateId;
|
||||
State.Label = Label;
|
||||
State.Trigger = Trigger;
|
||||
State.OutputSurface = OutputSurface;
|
||||
State.MetricLabels = MetricLabels;
|
||||
State.SourceAttribution = SourceAttribution;
|
||||
return State;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCompanionSubtitleCueReference MakeSubtitleCueReference(
|
||||
const FString& CueTemplateId,
|
||||
const FString& Label,
|
||||
const TArray<FString>& RequiredFields,
|
||||
const TArray<FString>& SyncSignals,
|
||||
const FHyperTwistTrainingSourceAttribution& SourceAttribution
|
||||
)
|
||||
{
|
||||
FHyperTwistTrainingCompanionSubtitleCueReference Cue;
|
||||
Cue.CueTemplateId = CueTemplateId;
|
||||
Cue.Label = Label;
|
||||
Cue.RequiredFields = RequiredFields;
|
||||
Cue.SyncSignals = SyncSignals;
|
||||
Cue.SourceAttribution = SourceAttribution;
|
||||
return Cue;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCompanionVisemeReference MakeVisemeReference(
|
||||
const FString& VisemeReferenceId,
|
||||
const FString& Label,
|
||||
const TArray<FString>& TimingFields,
|
||||
const TArray<FString>& BlendshapeTargets,
|
||||
const FHyperTwistTrainingSourceAttribution& SourceAttribution
|
||||
)
|
||||
{
|
||||
FHyperTwistTrainingCompanionVisemeReference Reference;
|
||||
Reference.VisemeReferenceId = VisemeReferenceId;
|
||||
Reference.Label = Label;
|
||||
Reference.TimingFields = TimingFields;
|
||||
Reference.BlendshapeTargets = BlendshapeTargets;
|
||||
Reference.SourceAttribution = SourceAttribution;
|
||||
return Reference;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCompanionGesturePresetReference MakeGesturePresetReference(
|
||||
const FString& GestureId,
|
||||
const FString& Label,
|
||||
const FString& Summary,
|
||||
const TArray<FString>& GestureTags,
|
||||
const TArray<FString>& RequiredStateTags,
|
||||
const FHyperTwistTrainingSourceAttribution& SourceAttribution
|
||||
)
|
||||
{
|
||||
FHyperTwistTrainingCompanionGesturePresetReference Reference;
|
||||
Reference.GestureId = GestureId;
|
||||
Reference.Label = Label;
|
||||
Reference.Summary = Summary;
|
||||
Reference.GestureTags = GestureTags;
|
||||
Reference.RequiredStateTags = RequiredStateTags;
|
||||
Reference.SourceAttribution = SourceAttribution;
|
||||
return Reference;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCompanionMoodPresetReference MakeMoodPresetReference(
|
||||
const FString& MoodId,
|
||||
const FString& Label,
|
||||
const FString& Summary,
|
||||
const TArray<FString>& ActivationSignals,
|
||||
const FHyperTwistTrainingSourceAttribution& SourceAttribution
|
||||
)
|
||||
{
|
||||
FHyperTwistTrainingCompanionMoodPresetReference Reference;
|
||||
Reference.MoodId = MoodId;
|
||||
Reference.Label = Label;
|
||||
Reference.Summary = Summary;
|
||||
Reference.ActivationSignals = ActivationSignals;
|
||||
Reference.SourceAttribution = SourceAttribution;
|
||||
return Reference;
|
||||
}
|
||||
|
||||
void AppendJoined(FString& OutText, const TArray<FString>& Values)
|
||||
{
|
||||
for (int32 Index = 0; Index < Values.Num(); ++Index)
|
||||
{
|
||||
if (Index > 0)
|
||||
{
|
||||
OutText.Append(TEXT(", "));
|
||||
}
|
||||
|
||||
OutText.Append(Values[Index]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCompanionReferenceBundle
|
||||
UHyperTwistTrainingCompanionLibrary::BuildBundledEmbodiedCompanionReferenceBundle()
|
||||
{
|
||||
using namespace HyperTwistTrainingCompanionLibraryInternal;
|
||||
|
||||
FHyperTwistTrainingCompanionReferenceBundle Bundle;
|
||||
Bundle.ReferenceUtc = TEXT("2026-05-13T00:00:00Z");
|
||||
Bundle.PrimaryNarrationContractId = TEXT("embodied-companion-narration");
|
||||
Bundle.PrimaryAvatarEmbedContractId = TEXT("avatar-only-embed");
|
||||
Bundle.PrimaryListeningContractId = TEXT("listening-threshold-lifecycle");
|
||||
Bundle.PrimaryVendorAdapterBoundaryId = TEXT("tts-and-asset-adapter-boundary");
|
||||
|
||||
Bundle.SpeechInputs =
|
||||
{
|
||||
MakeSpeechInput(
|
||||
TEXT("speech-input/text-script-and-voice-settings"),
|
||||
TEXT("Scripted text and voice settings"),
|
||||
{TEXT("coach-script"), TEXT("voice-parameters"), TEXT("subtitle-seed")},
|
||||
{
|
||||
TEXT("tts-lang"),
|
||||
TEXT("tts-voice"),
|
||||
TEXT("tts-rate"),
|
||||
TEXT("tts-pitch"),
|
||||
TEXT("tts-volume")
|
||||
},
|
||||
TEXT("Structured narration payload for queued coach speech, subtitle generation, and mood or gesture alignment."),
|
||||
MakeAttribution(
|
||||
TEXT("narration-queue"),
|
||||
TEXT("Preserves text-to-speech queueing, parameterized voice settings, and subtitle-seeded narration behavior from talkinghead.mjs.")
|
||||
)
|
||||
),
|
||||
MakeSpeechInput(
|
||||
TEXT("speech-input/streamed-audio-packets"),
|
||||
TEXT("Streamed audio packets"),
|
||||
{TEXT("streamed-audio"), TEXT("viseme-stream"), TEXT("marker-events")},
|
||||
{
|
||||
TEXT("jwt-get"),
|
||||
TEXT("tts-endpoint"),
|
||||
TEXT("tts-api-key"),
|
||||
TEXT("stream-buffer-ms")
|
||||
},
|
||||
TEXT("Streaming speech input for low-latency narration, live viseme scheduling, and queue underrun handling."),
|
||||
MakeAttribution(
|
||||
TEXT("streaming-audio"),
|
||||
TEXT("Preserves low-latency streaming playback, queue buffering, and live viseme alignment from the donor streaming examples and runtime queue.")
|
||||
)
|
||||
),
|
||||
MakeSpeechInput(
|
||||
TEXT("speech-input/audio-marker-overrides"),
|
||||
TEXT("Audio marker overrides"),
|
||||
{TEXT("marker-audio"), TEXT("prebuilt-audio"), TEXT("gesture-sync")},
|
||||
{
|
||||
TEXT("marker-id"),
|
||||
TEXT("audio-offset-ms"),
|
||||
TEXT("viseme-offset-ms"),
|
||||
TEXT("gesture-cue-id")
|
||||
},
|
||||
TEXT("Audio-marker input for externally prepared clips, marker callbacks, and deterministic gesture or subtitle sync."),
|
||||
MakeAttribution(
|
||||
TEXT("audio-markers"),
|
||||
TEXT("Preserves speakAudio, speakMarker, and marker-aligned callback behavior from the donor narration queue.")
|
||||
)
|
||||
)
|
||||
};
|
||||
|
||||
Bundle.QueueLifecycleStates =
|
||||
{
|
||||
MakeQueueState(
|
||||
TEXT("queue/ready"),
|
||||
TEXT("Ready"),
|
||||
TEXT("avatar is loaded and no narration item is active"),
|
||||
TEXT("companion ready surface"),
|
||||
{TEXT("queue-depth"), TEXT("avatar-ready"), TEXT("voice-route-ready")},
|
||||
MakeAttribution(
|
||||
TEXT("queue-ready"),
|
||||
TEXT("Preserves the donor's idle-ready posture before narration or listening begins.")
|
||||
)
|
||||
),
|
||||
MakeQueueState(
|
||||
TEXT("queue/speaking"),
|
||||
TEXT("Speaking"),
|
||||
TEXT("queued narration or audio playback is active"),
|
||||
TEXT("speech, subtitle, and viseme surface"),
|
||||
{TEXT("queue-depth"), TEXT("subtitle-cue-count"), TEXT("viseme-frame-count")},
|
||||
MakeAttribution(
|
||||
TEXT("queue-speaking"),
|
||||
TEXT("Preserves queued speech playback, subtitle timing, and viseme emission behavior from talkinghead.mjs.")
|
||||
)
|
||||
),
|
||||
MakeQueueState(
|
||||
TEXT("queue/streaming"),
|
||||
TEXT("Streaming"),
|
||||
TEXT("audio stream packets are still arriving while playback is active"),
|
||||
TEXT("streaming playback surface"),
|
||||
{TEXT("stream-buffer-ms"), TEXT("underrun-count"), TEXT("pending-chunk-count")},
|
||||
MakeAttribution(
|
||||
TEXT("queue-streaming"),
|
||||
TEXT("Preserves live streaming, audio buffering, and underrun-aware queue handling from the donor streaming runtime.")
|
||||
)
|
||||
),
|
||||
MakeQueueState(
|
||||
TEXT("queue/listening"),
|
||||
TEXT("Listening"),
|
||||
TEXT("narration is paused or complete and microphone capture is active"),
|
||||
TEXT("speech-input and listening surface"),
|
||||
{TEXT("energy-threshold"), TEXT("speech-start-ms"), TEXT("speech-end-ms")},
|
||||
MakeAttribution(
|
||||
TEXT("queue-listening"),
|
||||
TEXT("Preserves listening lifecycle, threshold gating, and microphone-state expectations from the donor runtime.")
|
||||
)
|
||||
)
|
||||
};
|
||||
|
||||
FHyperTwistTrainingCompanionNarrationContract NarrationContract;
|
||||
NarrationContract.ContractId = TEXT("embodied-companion-narration");
|
||||
NarrationContract.Title = TEXT("Embodied companion narration contract");
|
||||
NarrationContract.Summary = TEXT("First-party coach narration boundary for queued speech, streaming playback, viseme alignment, subtitles, markers, and coach-driven gesture or mood cues.");
|
||||
NarrationContract.SupportedSpeechInputIds =
|
||||
{
|
||||
TEXT("speech-input/text-script-and-voice-settings"),
|
||||
TEXT("speech-input/streamed-audio-packets"),
|
||||
TEXT("speech-input/audio-marker-overrides")
|
||||
};
|
||||
NarrationContract.QueueLifecycleStateIds =
|
||||
{
|
||||
TEXT("queue/ready"),
|
||||
TEXT("queue/speaking"),
|
||||
TEXT("queue/streaming"),
|
||||
TEXT("queue/listening")
|
||||
};
|
||||
NarrationContract.OutputSurfaceTags =
|
||||
{
|
||||
TEXT("audio-playback"),
|
||||
TEXT("subtitle-sync"),
|
||||
TEXT("viseme-envelope"),
|
||||
TEXT("marker-callback"),
|
||||
TEXT("gesture-cue"),
|
||||
TEXT("mood-cue")
|
||||
};
|
||||
NarrationContract.ExplicitExclusions =
|
||||
{
|
||||
TEXT("external TTS vendor product shell"),
|
||||
TEXT("sample avatar picker UI"),
|
||||
TEXT("donor example page chrome"),
|
||||
TEXT("generic speech-assistant platform ownership")
|
||||
};
|
||||
NarrationContract.SourceAttribution = MakeAttribution(
|
||||
TEXT("narration-contract"),
|
||||
TEXT("Preserves queued narration, subtitle synchronization, viseme timing, and gesture-aware coach speech behavior from the retained TalkingHead lane.")
|
||||
);
|
||||
Bundle.NarrationContracts = {NarrationContract};
|
||||
|
||||
Bundle.SubtitleCueReferences =
|
||||
{
|
||||
MakeSubtitleCueReference(
|
||||
TEXT("subtitle/inline-word-cues"),
|
||||
TEXT("Inline word subtitle cues"),
|
||||
{TEXT("cue-id"), TEXT("start-ms"), TEXT("end-ms"), TEXT("text"), TEXT("emphasis-tags")},
|
||||
{TEXT("audio-playhead"), TEXT("word-boundary"), TEXT("gesture-cue")},
|
||||
MakeAttribution(
|
||||
TEXT("subtitle-inline"),
|
||||
TEXT("Preserves word-level subtitle timing and emphasis alignment from the donor queue and lipsync modules.")
|
||||
)
|
||||
),
|
||||
MakeSubtitleCueReference(
|
||||
TEXT("subtitle/marker-and-viseme-sync"),
|
||||
TEXT("Marker and viseme synchronized subtitles"),
|
||||
{TEXT("marker-id"), TEXT("caption-span"), TEXT("audio-offset-ms"), TEXT("viseme-offset-ms")},
|
||||
{TEXT("marker-callback"), TEXT("viseme-envelope"), TEXT("stream-chunk")},
|
||||
MakeAttribution(
|
||||
TEXT("subtitle-markers"),
|
||||
TEXT("Preserves subtitle, marker, and viseme co-scheduling behavior from streamed and prebuilt donor audio paths.")
|
||||
)
|
||||
)
|
||||
};
|
||||
|
||||
Bundle.VisemeReferences =
|
||||
{
|
||||
MakeVisemeReference(
|
||||
TEXT("viseme/blendshape-envelope"),
|
||||
TEXT("Blendshape viseme envelope"),
|
||||
{TEXT("start-ms"), TEXT("end-ms"), TEXT("viseme-id"), TEXT("weight")},
|
||||
{TEXT("aa"), TEXT("oh"), TEXT("ee"), TEXT("sil"), TEXT("blink")},
|
||||
MakeAttribution(
|
||||
TEXT("viseme-envelope"),
|
||||
TEXT("Preserves blendshape-target viseme timing and envelope semantics from the donor lipsync modules.")
|
||||
)
|
||||
),
|
||||
MakeVisemeReference(
|
||||
TEXT("viseme/stream-frame"),
|
||||
TEXT("Streaming viseme frame"),
|
||||
{TEXT("chunk-index"), TEXT("frame-time-ms"), TEXT("viseme-id"), TEXT("strength")},
|
||||
{TEXT("aa"), TEXT("oh"), TEXT("ee"), TEXT("sil")},
|
||||
MakeAttribution(
|
||||
TEXT("viseme-stream"),
|
||||
TEXT("Preserves live streaming viseme-frame scheduling from the donor audio-streaming pathway.")
|
||||
)
|
||||
)
|
||||
};
|
||||
|
||||
Bundle.GesturePresets =
|
||||
{
|
||||
MakeGesturePresetReference(
|
||||
TEXT("gesture/acknowledge"),
|
||||
TEXT("Acknowledge"),
|
||||
TEXT("Compact acknowledgement motion used when the coach confirms a learner action or successful state."),
|
||||
{TEXT("confirmation"), TEXT("micro-gesture"), TEXT("coach-feedback")},
|
||||
{TEXT("avatar-ready"), TEXT("gesture-enabled")},
|
||||
MakeAttribution(
|
||||
TEXT("gesture-acknowledge"),
|
||||
TEXT("Preserves gesture-trigger behavior and compact coach presentation patterns from the donor runtime.")
|
||||
)
|
||||
),
|
||||
MakeGesturePresetReference(
|
||||
TEXT("gesture/focus-point"),
|
||||
TEXT("Focus point"),
|
||||
TEXT("Pointing or emphasis gesture used when the coach highlights a case detail, scene element, or training target."),
|
||||
{TEXT("focus"), TEXT("pointing"), TEXT("scene-callout")},
|
||||
{TEXT("avatar-ready"), TEXT("scene-anchor-available")},
|
||||
MakeAttribution(
|
||||
TEXT("gesture-focus"),
|
||||
TEXT("Preserves pointing and focus-callout choreography from the donor gesture and pose orchestration surfaces.")
|
||||
)
|
||||
),
|
||||
MakeGesturePresetReference(
|
||||
TEXT("gesture/celebrate"),
|
||||
TEXT("Celebrate"),
|
||||
TEXT("Positive coach gesture used for completion, personal-best moments, or successful recognition review."),
|
||||
{TEXT("celebration"), TEXT("completion"), TEXT("positive-feedback")},
|
||||
{TEXT("avatar-ready"), TEXT("gesture-enabled")},
|
||||
MakeAttribution(
|
||||
TEXT("gesture-celebrate"),
|
||||
TEXT("Preserves celebratory motion and timed coach feedback patterns from the donor animation surface.")
|
||||
)
|
||||
)
|
||||
};
|
||||
|
||||
Bundle.MoodPresets =
|
||||
{
|
||||
MakeMoodPresetReference(
|
||||
TEXT("mood/neutral"),
|
||||
TEXT("Neutral"),
|
||||
TEXT("Default coach presence for passive review, playback, and non-interruptive idle states."),
|
||||
{TEXT("idle"), TEXT("reset"), TEXT("no-guidance-escalation")},
|
||||
MakeAttribution(
|
||||
TEXT("mood-neutral"),
|
||||
TEXT("Preserves avatar mood-state defaults and reset behavior from talkinghead.mjs.")
|
||||
)
|
||||
),
|
||||
MakeMoodPresetReference(
|
||||
TEXT("mood/focused"),
|
||||
TEXT("Focused"),
|
||||
TEXT("Concentrated coach presence for error correction, inspection, and case-specific guidance."),
|
||||
{TEXT("analysis"), TEXT("error-review"), TEXT("focus-callout")},
|
||||
MakeAttribution(
|
||||
TEXT("mood-focused"),
|
||||
TEXT("Preserves focused pose and expression switching for inspection-heavy coaching states.")
|
||||
)
|
||||
),
|
||||
MakeMoodPresetReference(
|
||||
TEXT("mood/encouraging"),
|
||||
TEXT("Encouraging"),
|
||||
TEXT("Positive coach presence for affirmation, milestone completion, and motivational guidance."),
|
||||
{TEXT("success"), TEXT("encouragement"), TEXT("completion")},
|
||||
MakeAttribution(
|
||||
TEXT("mood-encouraging"),
|
||||
TEXT("Preserves positive mood and encouragement state changes from the donor avatar presentation layer.")
|
||||
)
|
||||
)
|
||||
};
|
||||
|
||||
FHyperTwistTrainingCompanionAvatarEmbedContract EmbedContract;
|
||||
EmbedContract.ContractId = TEXT("avatar-only-embed");
|
||||
EmbedContract.Title = TEXT("Avatar-only embed contract");
|
||||
EmbedContract.Summary = TEXT("First-party external-scene avatar boundary for coach presence, camera-safe embedding, retargeted motion, and companion overlays without inheriting the donor demo shell.");
|
||||
EmbedContract.RequiredStateTags =
|
||||
{
|
||||
TEXT("avatar-only"),
|
||||
TEXT("external-scene"),
|
||||
TEXT("external-camera"),
|
||||
TEXT("retargeting-ready"),
|
||||
TEXT("transparent-background-ready")
|
||||
};
|
||||
EmbedContract.SceneBindingFields =
|
||||
{
|
||||
TEXT("scene-root"),
|
||||
TEXT("avatar-anchor"),
|
||||
TEXT("lighting-profile"),
|
||||
TEXT("posture-anchor"),
|
||||
TEXT("subtitle-anchor")
|
||||
};
|
||||
EmbedContract.CameraBindingFields =
|
||||
{
|
||||
TEXT("camera-target"),
|
||||
TEXT("camera-orbit"),
|
||||
TEXT("field-of-view"),
|
||||
TEXT("framing-policy"),
|
||||
TEXT("distance-bias")
|
||||
};
|
||||
EmbedContract.SupportedGestureIds =
|
||||
{
|
||||
TEXT("gesture/acknowledge"),
|
||||
TEXT("gesture/focus-point"),
|
||||
TEXT("gesture/celebrate")
|
||||
};
|
||||
EmbedContract.SupportedMoodIds =
|
||||
{
|
||||
TEXT("mood/neutral"),
|
||||
TEXT("mood/focused"),
|
||||
TEXT("mood/encouraging")
|
||||
};
|
||||
EmbedContract.ExplicitExclusions =
|
||||
{
|
||||
TEXT("donor demo shell"),
|
||||
TEXT("sample avatar bundles"),
|
||||
TEXT("donor camera-page assumptions"),
|
||||
TEXT("generic character-platform ownership")
|
||||
};
|
||||
EmbedContract.SourceAttribution = MakeAttribution(
|
||||
TEXT("avatar-only-embedding"),
|
||||
TEXT("Preserves avatarOnly external-scene embedding, camera-safe composition, and retargeting-aware companion presence from the retained TalkingHead lane.")
|
||||
);
|
||||
Bundle.AvatarEmbedContracts = {EmbedContract};
|
||||
|
||||
FHyperTwistTrainingCompanionListeningContract ListeningContract;
|
||||
ListeningContract.ContractId = TEXT("listening-threshold-lifecycle");
|
||||
ListeningContract.Title = TEXT("Listening threshold and lifecycle contract");
|
||||
ListeningContract.Summary = TEXT("First-party speech-input contract for microphone activation, silence gating, queue handoff, and coach listening readiness beneath the companion lane.");
|
||||
ListeningContract.StartConditions =
|
||||
{
|
||||
TEXT("microphone-permission-granted"),
|
||||
TEXT("narration-queue-empty-or-paused"),
|
||||
TEXT("vad-ready")
|
||||
};
|
||||
ListeningContract.StopConditions =
|
||||
{
|
||||
TEXT("silence-timeout"),
|
||||
TEXT("manual-stop"),
|
||||
TEXT("speech-commit"),
|
||||
TEXT("narration-resume")
|
||||
};
|
||||
ListeningContract.ThresholdFields =
|
||||
{
|
||||
TEXT("energy-threshold"),
|
||||
TEXT("speech-start-ms"),
|
||||
TEXT("speech-end-ms"),
|
||||
TEXT("silence-gap-ms")
|
||||
};
|
||||
ListeningContract.MetricLabels =
|
||||
{
|
||||
TEXT("energy-threshold"),
|
||||
TEXT("speech-duration-ms"),
|
||||
TEXT("queue-underrun-count"),
|
||||
TEXT("stream-buffer-ms")
|
||||
};
|
||||
ListeningContract.SourceAttribution = MakeAttribution(
|
||||
TEXT("listening-thresholds"),
|
||||
TEXT("Preserves listening thresholds, speech detection timing, and queue handoff behavior from the donor runtime.")
|
||||
);
|
||||
Bundle.ListeningContracts = {ListeningContract};
|
||||
|
||||
FHyperTwistTrainingCompanionVendorAdapterBoundary Boundary;
|
||||
Boundary.BoundaryId = TEXT("tts-and-asset-adapter-boundary");
|
||||
Boundary.Title = TEXT("TTS and asset adapter boundary");
|
||||
Boundary.Summary = TEXT("Separates shippable first-party companion behavior from donor example pages, sample avatar assumptions, and external TTS or CDN wiring.");
|
||||
Boundary.ReplaceableVendorFields =
|
||||
{
|
||||
TEXT("jwt-get"),
|
||||
TEXT("tts-endpoint"),
|
||||
TEXT("tts-api-key"),
|
||||
TEXT("avatar-uri"),
|
||||
TEXT("audio-stream-provider")
|
||||
};
|
||||
Boundary.FirstPartyOwnedFields =
|
||||
{
|
||||
TEXT("coach-script"),
|
||||
TEXT("subtitle-text"),
|
||||
TEXT("mood-policy"),
|
||||
TEXT("gesture-policy"),
|
||||
TEXT("session-cues"),
|
||||
TEXT("audio-route-policy")
|
||||
};
|
||||
Boundary.DemoOnlyBehaviors =
|
||||
{
|
||||
TEXT("sample avatar picker"),
|
||||
TEXT("vendor-specific tutorial pages"),
|
||||
TEXT("donor example-site framing"),
|
||||
TEXT("direct third-party service marketing copy")
|
||||
};
|
||||
Boundary.SourceAttribution = MakeAttribution(
|
||||
TEXT("adapter-boundary"),
|
||||
TEXT("Preserves configurable vendor and asset seams while keeping voice-service wiring, sample avatars, and donor demo framing outside the shippable companion owner.")
|
||||
);
|
||||
Bundle.VendorAdapterBoundaries = {Boundary};
|
||||
|
||||
return Bundle;
|
||||
}
|
||||
|
||||
bool UHyperTwistTrainingCompanionLibrary::TryGetNarrationContractById(
|
||||
const FHyperTwistTrainingCompanionReferenceBundle& Bundle,
|
||||
const FString& ContractId,
|
||||
FHyperTwistTrainingCompanionNarrationContract& OutContract
|
||||
)
|
||||
{
|
||||
for (const FHyperTwistTrainingCompanionNarrationContract& Contract : Bundle.NarrationContracts)
|
||||
{
|
||||
if (Contract.ContractId.Equals(ContractId, ESearchCase::IgnoreCase))
|
||||
{
|
||||
OutContract = Contract;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
OutContract = FHyperTwistTrainingCompanionNarrationContract();
|
||||
return false;
|
||||
}
|
||||
|
||||
bool UHyperTwistTrainingCompanionLibrary::TryGetAvatarEmbedContractById(
|
||||
const FHyperTwistTrainingCompanionReferenceBundle& Bundle,
|
||||
const FString& ContractId,
|
||||
FHyperTwistTrainingCompanionAvatarEmbedContract& OutContract
|
||||
)
|
||||
{
|
||||
for (const FHyperTwistTrainingCompanionAvatarEmbedContract& Contract : Bundle.AvatarEmbedContracts)
|
||||
{
|
||||
if (Contract.ContractId.Equals(ContractId, ESearchCase::IgnoreCase))
|
||||
{
|
||||
OutContract = Contract;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
OutContract = FHyperTwistTrainingCompanionAvatarEmbedContract();
|
||||
return false;
|
||||
}
|
||||
|
||||
bool UHyperTwistTrainingCompanionLibrary::TryGetVendorAdapterBoundaryById(
|
||||
const FHyperTwistTrainingCompanionReferenceBundle& Bundle,
|
||||
const FString& BoundaryId,
|
||||
FHyperTwistTrainingCompanionVendorAdapterBoundary& OutBoundary
|
||||
)
|
||||
{
|
||||
for (const FHyperTwistTrainingCompanionVendorAdapterBoundary& Boundary : Bundle.VendorAdapterBoundaries)
|
||||
{
|
||||
if (Boundary.BoundaryId.Equals(BoundaryId, ESearchCase::IgnoreCase))
|
||||
{
|
||||
OutBoundary = Boundary;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
OutBoundary = FHyperTwistTrainingCompanionVendorAdapterBoundary();
|
||||
return false;
|
||||
}
|
||||
|
||||
FString UHyperTwistTrainingCompanionLibrary::BuildSubtitleCueChecklistTsv(
|
||||
const FHyperTwistTrainingCompanionReferenceBundle& Bundle
|
||||
)
|
||||
{
|
||||
using namespace HyperTwistTrainingCompanionLibraryInternal;
|
||||
|
||||
FString Output = TEXT("CueTemplateId\tLabel\tRequiredFields\tSyncSignals\tSourceRepo\n");
|
||||
for (const FHyperTwistTrainingCompanionSubtitleCueReference& Cue : Bundle.SubtitleCueReferences)
|
||||
{
|
||||
FString RequiredFields;
|
||||
AppendJoined(RequiredFields, Cue.RequiredFields);
|
||||
|
||||
FString SyncSignals;
|
||||
AppendJoined(SyncSignals, Cue.SyncSignals);
|
||||
|
||||
Output.Appendf(
|
||||
TEXT("%s\t%s\t%s\t%s\t%s\n"),
|
||||
*Cue.CueTemplateId,
|
||||
*Cue.Label,
|
||||
*RequiredFields,
|
||||
*SyncSignals,
|
||||
*Cue.SourceAttribution.SourceRepo
|
||||
);
|
||||
}
|
||||
|
||||
return Output;
|
||||
}
|
||||
|
|
@ -469,6 +469,12 @@ FHyperTwistTrainingViewerReferenceBundle UHyperTwistTrainingRuntimeLibrary::GetB
|
|||
return UHyperTwistTrainingViewerLibrary::BuildBundledBrowserViewerReferenceBundle();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCompanionReferenceBundle
|
||||
UHyperTwistTrainingRuntimeLibrary::GetBundledEmbodiedCompanionReferenceBundle()
|
||||
{
|
||||
return UHyperTwistTrainingCompanionLibrary::BuildBundledEmbodiedCompanionReferenceBundle();
|
||||
}
|
||||
|
||||
bool UHyperTwistTrainingRuntimeLibrary::TryGetLatestGeneratedModeLaunchRequestForDeck(
|
||||
UObject* WorldContextObject,
|
||||
const FString& UserId,
|
||||
|
|
@ -667,6 +673,49 @@ FString UHyperTwistTrainingRuntimeLibrary::BuildBundledBrowserViewerQaChecklistT
|
|||
return UHyperTwistTrainingViewerLibrary::BuildQaChecklistTsv(GetBundledBrowserViewerReferenceBundle());
|
||||
}
|
||||
|
||||
bool UHyperTwistTrainingRuntimeLibrary::TryGetBundledEmbodiedCompanionNarrationContract(
|
||||
const FString& ContractId,
|
||||
FHyperTwistTrainingCompanionNarrationContract& OutContract
|
||||
)
|
||||
{
|
||||
return UHyperTwistTrainingCompanionLibrary::TryGetNarrationContractById(
|
||||
GetBundledEmbodiedCompanionReferenceBundle(),
|
||||
ContractId,
|
||||
OutContract
|
||||
);
|
||||
}
|
||||
|
||||
bool UHyperTwistTrainingRuntimeLibrary::TryGetBundledEmbodiedCompanionAvatarEmbedContract(
|
||||
const FString& ContractId,
|
||||
FHyperTwistTrainingCompanionAvatarEmbedContract& OutContract
|
||||
)
|
||||
{
|
||||
return UHyperTwistTrainingCompanionLibrary::TryGetAvatarEmbedContractById(
|
||||
GetBundledEmbodiedCompanionReferenceBundle(),
|
||||
ContractId,
|
||||
OutContract
|
||||
);
|
||||
}
|
||||
|
||||
bool UHyperTwistTrainingRuntimeLibrary::TryGetBundledEmbodiedCompanionVendorAdapterBoundary(
|
||||
const FString& BoundaryId,
|
||||
FHyperTwistTrainingCompanionVendorAdapterBoundary& OutBoundary
|
||||
)
|
||||
{
|
||||
return UHyperTwistTrainingCompanionLibrary::TryGetVendorAdapterBoundaryById(
|
||||
GetBundledEmbodiedCompanionReferenceBundle(),
|
||||
BoundaryId,
|
||||
OutBoundary
|
||||
);
|
||||
}
|
||||
|
||||
FString UHyperTwistTrainingRuntimeLibrary::BuildBundledEmbodiedCompanionSubtitleCueChecklistTsv()
|
||||
{
|
||||
return UHyperTwistTrainingCompanionLibrary::BuildSubtitleCueChecklistTsv(
|
||||
GetBundledEmbodiedCompanionReferenceBundle()
|
||||
);
|
||||
}
|
||||
|
||||
FHyperTwistTrainingLearnerDeckStateSummary UHyperTwistTrainingRuntimeLibrary::GetActiveTrainingLearnerDeckStateSummary(UObject* WorldContextObject)
|
||||
{
|
||||
if (UHyperTwistTrainingSubsystem* TrainingSubsystem = GetTrainingSubsystem(WorldContextObject))
|
||||
|
|
|
|||
|
|
@ -0,0 +1,405 @@
|
|||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Kismet/BlueprintFunctionLibrary.h"
|
||||
#include "HyperTwistTraining/HyperTwistTrainingTypes.h"
|
||||
#include "HyperTwistTrainingCompanionLibrary.generated.h"
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingCompanionSpeechInputReference
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString InputId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Label;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> InputKinds;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> ConfigFields;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Summary;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FHyperTwistTrainingSourceAttribution SourceAttribution;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !InputId.IsEmpty() && !Label.IsEmpty() && SourceAttribution.IsStructurallyValid();
|
||||
}
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingCompanionQueueLifecycleState
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString StateId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Label;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Trigger;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString OutputSurface;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> MetricLabels;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FHyperTwistTrainingSourceAttribution SourceAttribution;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !StateId.IsEmpty() && !Label.IsEmpty() && SourceAttribution.IsStructurallyValid();
|
||||
}
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingCompanionNarrationContract
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString ContractId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Title;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Summary;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> SupportedSpeechInputIds;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> QueueLifecycleStateIds;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> OutputSurfaceTags;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> ExplicitExclusions;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FHyperTwistTrainingSourceAttribution SourceAttribution;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !ContractId.IsEmpty() && !Title.IsEmpty() && SourceAttribution.IsStructurallyValid();
|
||||
}
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingCompanionSubtitleCueReference
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString CueTemplateId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Label;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> RequiredFields;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> SyncSignals;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FHyperTwistTrainingSourceAttribution SourceAttribution;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !CueTemplateId.IsEmpty() && !Label.IsEmpty() && SourceAttribution.IsStructurallyValid();
|
||||
}
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingCompanionVisemeReference
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString VisemeReferenceId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Label;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> TimingFields;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> BlendshapeTargets;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FHyperTwistTrainingSourceAttribution SourceAttribution;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !VisemeReferenceId.IsEmpty() && !Label.IsEmpty() && SourceAttribution.IsStructurallyValid();
|
||||
}
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingCompanionGesturePresetReference
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString GestureId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Label;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Summary;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> GestureTags;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> RequiredStateTags;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FHyperTwistTrainingSourceAttribution SourceAttribution;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !GestureId.IsEmpty() && !Label.IsEmpty() && SourceAttribution.IsStructurallyValid();
|
||||
}
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingCompanionMoodPresetReference
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString MoodId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Label;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Summary;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> ActivationSignals;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FHyperTwistTrainingSourceAttribution SourceAttribution;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !MoodId.IsEmpty() && !Label.IsEmpty() && SourceAttribution.IsStructurallyValid();
|
||||
}
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingCompanionAvatarEmbedContract
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString ContractId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Title;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Summary;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> RequiredStateTags;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> SceneBindingFields;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> CameraBindingFields;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> SupportedGestureIds;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> SupportedMoodIds;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> ExplicitExclusions;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FHyperTwistTrainingSourceAttribution SourceAttribution;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !ContractId.IsEmpty() && !Title.IsEmpty() && SourceAttribution.IsStructurallyValid();
|
||||
}
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingCompanionListeningContract
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString ContractId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Title;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Summary;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> StartConditions;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> StopConditions;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> ThresholdFields;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> MetricLabels;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FHyperTwistTrainingSourceAttribution SourceAttribution;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !ContractId.IsEmpty() && !Title.IsEmpty() && SourceAttribution.IsStructurallyValid();
|
||||
}
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingCompanionVendorAdapterBoundary
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString BoundaryId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Title;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString Summary;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> ReplaceableVendorFields;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> FirstPartyOwnedFields;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> DemoOnlyBehaviors;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FHyperTwistTrainingSourceAttribution SourceAttribution;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !BoundaryId.IsEmpty() && !Title.IsEmpty() && SourceAttribution.IsStructurallyValid();
|
||||
}
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingCompanionReferenceBundle
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString ReferenceUtc;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString PrimaryNarrationContractId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString PrimaryAvatarEmbedContractId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString PrimaryListeningContractId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString PrimaryVendorAdapterBoundaryId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistTrainingCompanionSpeechInputReference> SpeechInputs;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistTrainingCompanionQueueLifecycleState> QueueLifecycleStates;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistTrainingCompanionNarrationContract> NarrationContracts;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistTrainingCompanionSubtitleCueReference> SubtitleCueReferences;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistTrainingCompanionVisemeReference> VisemeReferences;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistTrainingCompanionGesturePresetReference> GesturePresets;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistTrainingCompanionMoodPresetReference> MoodPresets;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistTrainingCompanionAvatarEmbedContract> AvatarEmbedContracts;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistTrainingCompanionListeningContract> ListeningContracts;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistTrainingCompanionVendorAdapterBoundary> VendorAdapterBoundaries;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !PrimaryNarrationContractId.IsEmpty() && !PrimaryAvatarEmbedContractId.IsEmpty()
|
||||
&& SpeechInputs.Num() > 0 && NarrationContracts.Num() > 0 && AvatarEmbedContracts.Num() > 0;
|
||||
}
|
||||
};
|
||||
|
||||
UCLASS()
|
||||
class UNREALHYPERTWIST_API UHyperTwistTrainingCompanionLibrary : public UBlueprintFunctionLibrary
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Companion")
|
||||
static FHyperTwistTrainingCompanionReferenceBundle BuildBundledEmbodiedCompanionReferenceBundle();
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Companion")
|
||||
static bool TryGetNarrationContractById(
|
||||
const FHyperTwistTrainingCompanionReferenceBundle& Bundle,
|
||||
const FString& ContractId,
|
||||
FHyperTwistTrainingCompanionNarrationContract& OutContract
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Companion")
|
||||
static bool TryGetAvatarEmbedContractById(
|
||||
const FHyperTwistTrainingCompanionReferenceBundle& Bundle,
|
||||
const FString& ContractId,
|
||||
FHyperTwistTrainingCompanionAvatarEmbedContract& OutContract
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Companion")
|
||||
static bool TryGetVendorAdapterBoundaryById(
|
||||
const FHyperTwistTrainingCompanionReferenceBundle& Bundle,
|
||||
const FString& BoundaryId,
|
||||
FHyperTwistTrainingCompanionVendorAdapterBoundary& OutBoundary
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Companion")
|
||||
static FString BuildSubtitleCueChecklistTsv(const FHyperTwistTrainingCompanionReferenceBundle& Bundle);
|
||||
};
|
||||
|
|
@ -5,6 +5,7 @@
|
|||
#include "HyperTwistRecognition/HyperTwistRecognitionReplayLibrary.h"
|
||||
#include "HyperTwistReplay/HyperTwistReplayReviewLibrary.h"
|
||||
#include "HyperTwistTraining/HyperTwistTrainingAnalyticsLibrary.h"
|
||||
#include "HyperTwistTraining/HyperTwistTrainingCompanionLibrary.h"
|
||||
#include "HyperTwistTraining/HyperTwistTrainingCoachLibrary.h"
|
||||
#include "HyperTwistTraining/HyperTwistTrainingKnowledgeLibrary.h"
|
||||
#include "HyperTwistTraining/HyperTwistTrainingViewerLibrary.h"
|
||||
|
|
@ -152,6 +153,9 @@ public:
|
|||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Viewer")
|
||||
static FHyperTwistTrainingViewerReferenceBundle GetBundledBrowserViewerReferenceBundle();
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Companion")
|
||||
static FHyperTwistTrainingCompanionReferenceBundle GetBundledEmbodiedCompanionReferenceBundle();
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
|
||||
static bool TryGetLatestGeneratedModeLaunchRequestForDeck(
|
||||
UObject* WorldContextObject,
|
||||
|
|
@ -227,6 +231,27 @@ public:
|
|||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Viewer")
|
||||
static FString BuildBundledBrowserViewerQaChecklistTsv();
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Companion")
|
||||
static bool TryGetBundledEmbodiedCompanionNarrationContract(
|
||||
const FString& ContractId,
|
||||
FHyperTwistTrainingCompanionNarrationContract& OutContract
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Companion")
|
||||
static bool TryGetBundledEmbodiedCompanionAvatarEmbedContract(
|
||||
const FString& ContractId,
|
||||
FHyperTwistTrainingCompanionAvatarEmbedContract& OutContract
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Companion")
|
||||
static bool TryGetBundledEmbodiedCompanionVendorAdapterBoundary(
|
||||
const FString& BoundaryId,
|
||||
FHyperTwistTrainingCompanionVendorAdapterBoundary& OutBoundary
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Companion")
|
||||
static FString BuildBundledEmbodiedCompanionSubtitleCueChecklistTsv();
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
|
||||
static FHyperTwistTrainingLearnerDeckStateSummary GetActiveTrainingLearnerDeckStateSummary(UObject* WorldContextObject);
|
||||
|
||||
|
|
|
|||
|
|
@ -241,19 +241,19 @@ Practical rule:
|
|||
For HyperTwist specifically, the mirror/handoff model must now carry one additional explicit truth:
|
||||
|
||||
- current curated shallow-eval set: `71` repos
|
||||
- currently verified live in checked `UnrealHyperTwist` surfaces: `9`
|
||||
- permissive live lanes: `8`
|
||||
- currently verified live in checked `UnrealHyperTwist` surfaces: `11`
|
||||
- permissive live lanes: `10`
|
||||
- restrictive live lane: `1`
|
||||
- the restrictive live lane is `onionhoney/roux-trainers`
|
||||
- that lane is to be treated as properly clean-roomed and then implemented
|
||||
- `Phase 0R` is now closed for the remaining `61` non-live rows
|
||||
- `Phase 1R` is now closed as the retained-set contract and handoff layer
|
||||
- the ten already-live rows now also have a dedicated source-backed preservation authority doc
|
||||
- the eleven already-live rows now also have a dedicated source-backed preservation authority doc
|
||||
- `Phase 2R-A` is now closed as the core ownership and acceptance authority for the five retained permissive anchor rows
|
||||
- `Phase 2R-B` is now closed as the support-plane ownership and acceptance authority for the retained permissive support rows in scope
|
||||
- `Phase 2R-C` is now closed as the residual adjunct and alternative-support ownership and acceptance authority for the final retained permissive `0R-B` rows
|
||||
- the current manifest and doc control plane should now distinguish:
|
||||
- `49` non-live active implementation-board rows
|
||||
- `48` non-live active implementation-board rows
|
||||
- `9` retained benchmark/oracle/clean-room-later rows outside the active implementation board
|
||||
- `3` discarded active-set rows
|
||||
|
||||
|
|
@ -269,7 +269,7 @@ Reset rule:
|
|||
|
||||
- do not reopen `Phase 0R`
|
||||
- before new donor-shaped widening for HyperTwist, read:
|
||||
- `docs/HYPERTWIST_LIVE_LANES_SOURCE_AND_PRESERVATION_AUDIT_2026-05-13.md` for the ten already-live lanes
|
||||
- `docs/HYPERTWIST_LIVE_LANES_SOURCE_AND_PRESERVATION_AUDIT_2026-05-13.md` for the eleven already-live lanes
|
||||
- `docs/HYPERTWIST_PHASE_1R_RETAINED_SET_CONTRACT_AND_HANDOFF_2026-05-13.md` for routing
|
||||
- `docs/HYPERTWIST_PHASE_2R_PACKET_2R_A_OWNERSHIP_AND_ACCEPTANCE_CONTRACT_2026-05-13.md` for the five retained core permissive rows
|
||||
- `docs/HYPERTWIST_PHASE_2R_PACKET_2R_B_OWNERSHIP_AND_ACCEPTANCE_CONTRACT_2026-05-13.md` for the retained permissive support-plane rows in scope
|
||||
|
|
|
|||
|
|
@ -28,6 +28,11 @@ Important correction added on `2026-05-13`:
|
|||
- `google/model-viewer` is now a currently verified live permissive lane through `Phase 3R-D`.
|
||||
- it is live through first-party Unreal browser-viewer and asset-QA contract code plus bundled reference-target materialization rather than through the direct training-deck bundle path used by the earlier five permissive donor lanes in this audit.
|
||||
|
||||
Important correction added on `2026-05-13`:
|
||||
|
||||
- `met4citizen/TalkingHead` is now a currently verified live permissive lane through `Phase 3R-E`.
|
||||
- it is live through first-party Unreal embodied-companion contract code plus bundled reference-target materialization rather than through the direct training-deck bundle path used by the earlier five permissive donor lanes in this audit.
|
||||
|
||||
## Scope
|
||||
|
||||
- Current repo set audited: the 71 `HyperTwist` rows in `docs/repo_portfolio_unified_source_audit_v6_3.csv`.
|
||||
|
|
@ -299,7 +304,6 @@ The following sensitive or high-risk lanes showed no exact live Unreal evidence
|
|||
- `kash/cubedesk`
|
||||
- `HactarCE/Hyperspeedcube`
|
||||
- `kkoomen/qbr`
|
||||
- `met4citizen/TalkingHead`
|
||||
- `roice3/Magic120Cell`
|
||||
- `roice3/MagicCube5D`
|
||||
- `roice3/MagicTile`
|
||||
|
|
@ -308,7 +312,7 @@ That does not make them legally cleared or deeply audited. It only means this pa
|
|||
|
||||
## Recommended next implementation slice
|
||||
|
||||
The next clean bounded move is to preserve the ten landed lanes as the current truth, keep the `onionhoney/roux-trainers` clean-room status explicit everywhere, and continue from the closed retained-set packet sequence with `Phase 3R-E`. After that, do a second pass focused on the additional live non-71 surfaces (`SpeedCubeDB` and `CubingApp`) so the active training catalog has a complete provenance board before any further widening work resumes.
|
||||
The next clean bounded move is to preserve the eleven landed lanes as the current truth, keep the `onionhoney/roux-trainers` clean-room status explicit everywhere, and continue from the closed retained-set packet sequence with `Phase 3R-F`. After that, do a second pass focused on the additional live non-71 surfaces (`SpeedCubeDB` and `CubingApp`) so the active training catalog has a complete provenance board before any further widening work resumes.
|
||||
|
||||
For the readable all-rows follow-up board that pairs this audit with the reset schedule, use:
|
||||
|
||||
|
|
|
|||
|
|
@ -38,11 +38,11 @@ Current handling:
|
|||
The current reconciled HyperTwist truth is:
|
||||
|
||||
- current curated HyperTwist shallow-eval set: `71` repos
|
||||
- currently verified live in checked `UnrealHyperTwist` surfaces: `10`
|
||||
- currently verified live permissive lanes: `9`
|
||||
- currently verified live in checked `UnrealHyperTwist` surfaces: `11`
|
||||
- currently verified live permissive lanes: `10`
|
||||
- currently verified live restrictive lanes: `1`
|
||||
|
||||
The nine currently verified live permissive lanes are:
|
||||
The ten currently verified live permissive lanes are:
|
||||
|
||||
- `Aarav2709/KubeTimr`
|
||||
- `apache/echarts`
|
||||
|
|
@ -51,6 +51,7 @@ The nine currently verified live permissive lanes are:
|
|||
- `Hypercubers/hypercubing.xyz`
|
||||
- `tao-yu/Alg-Trainer`
|
||||
- `Lykos/cube_trainer`
|
||||
- `met4citizen/TalkingHead`
|
||||
- `poliva/cubedex`
|
||||
- `newyork-anthonyng/rubiks-cross-trainer`
|
||||
|
||||
|
|
@ -150,14 +151,14 @@ Use the following only as lineage or historical context unless a restart doc exp
|
|||
|
||||
The restart is not a mass revert.
|
||||
|
||||
It is a provenance and planning reset around the remaining `61` current non-live rows while preserving the ten already-landed lanes.
|
||||
It is a provenance and planning reset around the remaining `60` current non-live rows while preserving the eleven already-landed lanes.
|
||||
|
||||
Required standing rules:
|
||||
|
||||
- preserve the ten landed lanes
|
||||
- preserve the eleven landed lanes
|
||||
- preserve `onionhoney/roux-trainers` as the only currently verified landed restrictive clean-room lane
|
||||
- do not collapse `selected`, `retained`, `integrate`, `repurpose`, or `donor bench` into `already implemented`
|
||||
- do not widen new donor-shaped implementation from the remaining `61` current non-live rows until the closed packet sequence routes it
|
||||
- do not widen new donor-shaped implementation from the remaining `60` current non-live rows until the closed packet sequence routes it
|
||||
- before implementing any retained repo, read the packet-level deep-source authority doc for that repo class if one exists
|
||||
|
||||
## 2026-05-12 packet-depth correction
|
||||
|
|
@ -467,7 +468,7 @@ Result:
|
|||
- `Packet 0R-D` is now the governance and Model A authority for the restrictive clean-room rows
|
||||
- `Packet 0R-E` is now the deep-source benchmark, reference, clean-room-later, and discard authority for its twelve rows
|
||||
- `Phase 1R` is now the retained-set contract and handoff authority for all post-`Phase 0R` routing
|
||||
- the ten already-live rows now also have symmetric source-backed preservation authority through the live-lane audit
|
||||
- the eleven already-live rows now also have symmetric source-backed preservation authority through the live-lane audit
|
||||
- `Phase 2R-A` is now the ownership and acceptance authority for the five core retained permissive rows
|
||||
- `Phase 2R-B` is now the ownership and acceptance authority for the primary retained permissive support-plane rows in scope
|
||||
- `Phase 2R-C` is now the ownership and acceptance authority for the final residual `0R-B` permissive rows
|
||||
|
|
@ -480,11 +481,12 @@ Result:
|
|||
- `Hypercubers/hypercubing.xyz` is now the seventh permissive live lane and eighth live row overall
|
||||
- `apache/echarts` is now the eighth permissive live lane and ninth live row overall
|
||||
- `google/model-viewer` is now the ninth permissive live lane and tenth live row overall
|
||||
- `met4citizen/TalkingHead` is now the tenth permissive live lane and eleventh live row overall
|
||||
- `HactarCE/Hyperspeedcube`, `kkoomen/qbr`, `vivaansinghvi07/rubix-cube-solver`, and `roice3/MagicTile` remain packetized for `Phase 6R`
|
||||
- `Hypercubers/hypercubing.xyz` is now a landed permissive knowledge/curriculum/community lane rather than the next straight permissive candidate
|
||||
- `apache/echarts` is now a landed permissive analytics/reporting lane rather than the next straight permissive candidate
|
||||
- `google/model-viewer` plus `KhronosGroup/glTF-Sample-Viewer` are now the retained browser presentation/editor and standards-QA `3R-D` lane
|
||||
- `met4citizen/TalkingHead` is now the retained embodied companion `3R-E` lane
|
||||
- `google/model-viewer` plus `KhronosGroup/glTF-Sample-Viewer` are now the landed browser presentation/editor and standards-QA `3R-D` lane
|
||||
- `met4citizen/TalkingHead` is now the landed embodied companion `3R-E` lane
|
||||
- `mrdoob/three.js`, `pmndrs/react-three-fiber`, and `pmndrs/xr` now define the retained browser `3D` / XR support `3R-F` lane
|
||||
- `cahidenes/rubiks-cube-solver` and `tentone/rubix-solver` now form the retained `6R-E` recognition-comparison adjunct lane
|
||||
- `NuiLab/code-vr` now forms the retained `6R-F` symbolic-to-spatial XR pedagogy experiment lane
|
||||
|
|
@ -498,7 +500,7 @@ License-tracking boundary:
|
|||
|
||||
- `docs/REPO_LICENSE_TRACKING.md` is the canonical repo-row legal and attribution ledger
|
||||
- `docs/v6_5_deep_manual_pack/HyperTwist/LICENSETRACKING.md` is policy-only and must not become a second repo-row legal ledger
|
||||
- `docs/HYPERTWIST_LIVE_LANES_SOURCE_AND_PRESERVATION_AUDIT_2026-05-13.md` is the source-backed preservation authority for the ten already-live rows
|
||||
- `docs/HYPERTWIST_LIVE_LANES_SOURCE_AND_PRESERVATION_AUDIT_2026-05-13.md` is the source-backed preservation authority for the eleven already-live rows
|
||||
- `docs/HYPERTWIST_PHASE_2R_PACKET_2R_A_OWNERSHIP_AND_ACCEPTANCE_CONTRACT_2026-05-13.md` is the packet authority for the five core retained permissive rows once source extraction has already been read
|
||||
- `docs/HYPERTWIST_PHASE_2R_PACKET_2R_B_OWNERSHIP_AND_ACCEPTANCE_CONTRACT_2026-05-13.md` is the packet authority for the primary retained permissive support-plane rows once source extraction has already been read
|
||||
- `docs/HYPERTWIST_PHASE_2R_PACKET_2R_C_OWNERSHIP_AND_ACCEPTANCE_CONTRACT_2026-05-13.md` is the packet authority for the final residual permissive `0R-B` adjunct and alternative-support rows once source extraction has already been read
|
||||
|
|
@ -512,7 +514,7 @@ License-tracking boundary:
|
|||
|
||||
The next bounded move is:
|
||||
|
||||
1. preserve the ten landed rows as the current truth
|
||||
2. keep `Aarav2709/KubeTimr`, `Hypercubers/hypercubing.xyz`, `apache/echarts`, and `google/model-viewer` on preserve-and-enhance footing through their landed packets
|
||||
3. open `Phase 3R-E`
|
||||
4. widen `met4citizen/TalkingHead` as the retained embodied companion, narration, lip-sync, gesture, and subtitle lane
|
||||
1. preserve the eleven landed rows as the current truth
|
||||
2. keep `Aarav2709/KubeTimr`, `Hypercubers/hypercubing.xyz`, `apache/echarts`, `google/model-viewer`, and `met4citizen/TalkingHead` on preserve-and-enhance footing through their landed packets
|
||||
3. open `Phase 3R-F`
|
||||
4. widen `mrdoob/three.js`, `pmndrs/react-three-fiber`, and `pmndrs/xr` as the retained browser `3D`, XR session, and spatial-support lane
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@ Created on `2026-05-13`
|
|||
|
||||
This audit is `closed`.
|
||||
|
||||
It is the canonical source-backed preservation authority for the ten HyperTwist rows that are already live in checked first-party Unreal surfaces.
|
||||
It is the canonical source-backed preservation authority for the eleven HyperTwist rows that are already live in checked first-party Unreal surfaces.
|
||||
|
||||
It closes the symmetry gap that remained after `Phase 0R` and `Phase 1R`:
|
||||
|
||||
- the `61` non-live rows already have source-backed authority through `Packet 0R-A` through `Packet 0R-E`
|
||||
- the `10` live rows now have source-backed authority through this live-lane preservation audit
|
||||
- the `60` non-live rows already have source-backed authority through `Packet 0R-A` through `Packet 0R-E`
|
||||
- the `11` live rows now have source-backed authority through this live-lane preservation audit
|
||||
|
||||
## Purpose
|
||||
|
||||
|
|
@ -27,7 +27,7 @@ Use this document to answer the live-lane questions that the `0R-*` packets do n
|
|||
|
||||
This document intentionally separates permissive and restrictive handling:
|
||||
|
||||
- the nine permissive live lanes below are documented from donor mirror source plus first-party Unreal outputs
|
||||
- the ten permissive live lanes below are documented from donor mirror source plus first-party Unreal outputs
|
||||
- the one restrictive live lane, `onionhoney/roux-trainers`, is documented here only from first-party Unreal outputs, `REPO_LICENSE_TRACKING.md`, and scrubbed clean-room materials
|
||||
|
||||
Do not use this document as permission for `Model B` to read the restrictive mirror.
|
||||
|
|
@ -37,19 +37,19 @@ Do not use this document as permission for `Model B` to read the restrictive mir
|
|||
Current result:
|
||||
|
||||
- current curated HyperTwist shallow-eval set: `71`
|
||||
- already covered by `0R-A` through `0R-E`: `61` current non-live rows
|
||||
- covered by this audit: `10` live rows
|
||||
- already covered by `0R-A` through `0R-E`: `60` current non-live rows
|
||||
- covered by this audit: `11` live rows
|
||||
- total rows with source-backed authority now visible in canonical docs: `71`
|
||||
- live permissive preserve lanes: `9`
|
||||
- live permissive preserve lanes: `10`
|
||||
- live restrictive clean-room preserve lanes: `1`
|
||||
- additional live rows discovered beyond the original six from the 2026-05-11 audit: `4`
|
||||
- additional live rows discovered beyond the original six from the 2026-05-11 audit: `5`
|
||||
|
||||
## Authority order
|
||||
|
||||
For future work on the already-live lanes, read in this order:
|
||||
|
||||
1. this live-lane audit
|
||||
2. the relevant landed implementation packet where one exists, currently [HYPERTWIST_PHASE_3R_PACKET_3R_A_KUBETIMR_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_A_KUBETIMR_IMPLEMENTATION_2026-05-13.md:1) for `Aarav2709/KubeTimr`, [HYPERTWIST_PHASE_3R_PACKET_3R_B_HYPERCUBING_XYZ_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_B_HYPERCUBING_XYZ_IMPLEMENTATION_2026-05-13.md:1) for `Hypercubers/hypercubing.xyz`, [HYPERTWIST_PHASE_3R_PACKET_3R_C_ECHARTS_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_C_ECHARTS_IMPLEMENTATION_2026-05-13.md:1) for `apache/echarts`, and [HYPERTWIST_PHASE_3R_PACKET_3R_D_MODEL_VIEWER_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_D_MODEL_VIEWER_IMPLEMENTATION_2026-05-13.md:1) for `google/model-viewer`
|
||||
2. the relevant landed implementation packet where one exists, currently [HYPERTWIST_PHASE_3R_PACKET_3R_A_KUBETIMR_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_A_KUBETIMR_IMPLEMENTATION_2026-05-13.md:1) for `Aarav2709/KubeTimr`, [HYPERTWIST_PHASE_3R_PACKET_3R_B_HYPERCUBING_XYZ_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_B_HYPERCUBING_XYZ_IMPLEMENTATION_2026-05-13.md:1) for `Hypercubers/hypercubing.xyz`, [HYPERTWIST_PHASE_3R_PACKET_3R_C_ECHARTS_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_C_ECHARTS_IMPLEMENTATION_2026-05-13.md:1) for `apache/echarts`, [HYPERTWIST_PHASE_3R_PACKET_3R_D_MODEL_VIEWER_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_D_MODEL_VIEWER_IMPLEMENTATION_2026-05-13.md:1) for `google/model-viewer`, and [HYPERTWIST_PHASE_3R_PACKET_3R_E_TALKINGHEAD_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_E_TALKINGHEAD_IMPLEMENTATION_2026-05-13.md:1) for `met4citizen/TalkingHead`
|
||||
3. [HYPERTWIST_PHASE_1R_RETAINED_SET_CONTRACT_AND_HANDOFF_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_1R_RETAINED_SET_CONTRACT_AND_HANDOFF_2026-05-13.md:1)
|
||||
4. [REPO_LICENSE_TRACKING.md](C:/HyperTwist/docs/REPO_LICENSE_TRACKING.md:1)
|
||||
5. [MODEL_B_SOURCE_ACCESS_BOUNDARY.md](C:/HyperTwist/docs/MODEL_B_SOURCE_ACCESS_BOUNDARY.md:1) for the `onionhoney/roux-trainers` lane
|
||||
|
|
@ -62,6 +62,7 @@ For future work on the already-live lanes, read in this order:
|
|||
| `Hypercubers/hypercubing.xyz` | `MIT` | landed taxonomy, notation, progression, software-reference, and leaderboard-contract lane | the main landed permissive hypercubing knowledge and community-reference preserve lane | runtime simulation, solver execution, recognition, or timer ownership |
|
||||
| `apache/echarts` | `Apache-2.0` | landed analytics, reporting, export, and progress-visualization lane | the main landed permissive analytics and report-contract preserve lane | gameplay/runtime ownership, generic BI shell ownership, or separate live-lane claims for `zrender` / `echarts-gl` |
|
||||
| `google/model-viewer` | `Apache-2.0` | landed browser presentation, compact editor, and standards-aware asset-QA lane | the main landed permissive browser viewer and support-plane asset-QA preserve lane | gameplay/runtime ownership, donor docs/demo shell ownership, mixed-asset shipping from `shared-assets`, or separate live-lane claims for the subordinate package rows and Khronos sidecars |
|
||||
| `met4citizen/TalkingHead` | `MIT` | landed embodied companion, narration, lip-sync, gesture, subtitle, and avatar-embed lane | the main landed permissive embodied coach and companion preserve lane | generic speech-engine ownership, sample-asset shipping assumptions, donor example-shell ownership, or vendor lock-in |
|
||||
| `tao-yu/Alg-Trainer` | `MIT` | broad algorithm-training shell and case-corpus foundation | the main landed permissive algorithm-trainer foundation | persisted coaching backend or smartcube-first review shell |
|
||||
| `Lykos/cube_trainer` | `MIT` | persisted coaching, weighted sampling, and BLD-domain lane | the main landed permissive training-session and coaching lane | broad front-end training-shell ownership |
|
||||
| `poliva/cubedex` | operational `MIT` posture in HyperTwist canon; checked mirror license surface incomplete | smartcube-aware practice, SRS, and review lane | the main landed permissive smartcube review and repetition lane | the sole case-corpus foundation or full backend owner |
|
||||
|
|
@ -419,6 +420,67 @@ Future widening rule:
|
|||
- preserve the Apache license text and normal `NOTICE` handling expectations in redistributed builds
|
||||
- read the landed [HYPERTWIST_PHASE_3R_PACKET_3R_D_MODEL_VIEWER_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_D_MODEL_VIEWER_IMPLEMENTATION_2026-05-13.md:1) before treating this lane as an open donor candidate again
|
||||
|
||||
### `met4citizen/TalkingHead`
|
||||
|
||||
Current status:
|
||||
|
||||
- `implemented_live_permissive`
|
||||
- preserve as a landed first-party permissive lane
|
||||
|
||||
Licensing posture:
|
||||
|
||||
- `MIT`
|
||||
- sample avatars, media, and external TTS or JWT-backed service flows remain separate provenance and deployment questions outside the code-license grant
|
||||
|
||||
Source surfaces inspected:
|
||||
|
||||
- [README.md](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/README.md:1)
|
||||
- [LICENSE](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/LICENSE:1)
|
||||
- [package.json](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/package.json:1)
|
||||
- [modules/talkinghead.mjs](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/modules/talkinghead.mjs:1)
|
||||
- [modules/retargeter.mjs](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/modules/retargeter.mjs:1)
|
||||
- [modules/lipsync-en.mjs](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/modules/lipsync-en.mjs:1)
|
||||
- [modules/playback-worklet.js](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/modules/playback-worklet.js:1)
|
||||
- [examples/azure-audio-streaming.html](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/examples/azure-audio-streaming.html:1)
|
||||
- [tests/streaming-tests.html](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/tests/streaming-tests.html:1)
|
||||
|
||||
First-party live evidence:
|
||||
|
||||
- [HyperTwistTrainingCompanionLibrary.h](C:/HyperTwist/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingCompanionLibrary.h:1)
|
||||
- [HyperTwistTrainingCompanionLibrary.cpp](C:/HyperTwist/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCompanionLibrary.cpp:1)
|
||||
- [HyperTwistTrainingRuntimeLibrary.h](C:/HyperTwist/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingRuntimeLibrary.h:1)
|
||||
- [HyperTwistTrainingRuntimeLibrary.cpp](C:/HyperTwist/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRuntimeLibrary.cpp:1)
|
||||
- [hypertwist-reference-incorporation-targets.json](C:/HyperTwist/UnrealHyperTwist/Content/HyperTwistTraining/MaterializedCatalog/hypertwist-reference-incorporation-targets.json:1)
|
||||
- [hypertwist-catalog-materialization-summary.json](C:/HyperTwist/UnrealHyperTwist/Content/HyperTwistTraining/MaterializedCatalog/hypertwist-catalog-materialization-summary.json:1)
|
||||
- [met4citizen-talkinghead-reference-pages.jsonl](C:/HyperTwist/UnrealHyperTwist/Content/HyperTwistTraining/MaterializedCatalog/raw-extracts/met4citizen-talkinghead-reference-pages.jsonl:1)
|
||||
|
||||
Preserved landed value:
|
||||
|
||||
- first-party embodied companion narration with queued speech, subtitles, viseme timing, and marker-aware coach playback
|
||||
- first-party avatar-only embed boundaries for external-scene companion presence with retargeting-aware motion
|
||||
- first-party gesture, mood, and pose cues for acknowledgement, focus-callout, celebration, and supportive coaching states
|
||||
- first-party streaming and listening lifecycle states with queue-buffer, underrun, and microphone-threshold posture
|
||||
- explicit vendor and asset boundary handling so service wiring and sample-asset assumptions stay replaceable and outside product-core ownership
|
||||
|
||||
Excluded or non-promotion boundary:
|
||||
|
||||
- do not promote this lane into generic speech-engine ownership
|
||||
- do not promote it into vendor-locked TTS infrastructure
|
||||
- do not promote donor example shells, sample avatar packs, or media payloads into the shipped first-party owner
|
||||
- do not treat it as a generic avatar-product foundation
|
||||
|
||||
Rationale:
|
||||
|
||||
- the repo is valuable because it is the strongest bounded embodied companion and narrated coaching donor in the set
|
||||
- its strongest value is queue discipline, avatar embedding, subtitle and viseme timing, and coach-facing expression control rather than host-shell or vendor ownership
|
||||
|
||||
Future widening rule:
|
||||
|
||||
- widen only through ordinary first-party enhancement work
|
||||
- preserve the MIT notice as checked locally
|
||||
- keep the sample-asset and external-service provenance caveat visible
|
||||
- read the landed [HYPERTWIST_PHASE_3R_PACKET_3R_E_TALKINGHEAD_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_E_TALKINGHEAD_IMPLEMENTATION_2026-05-13.md:1) before treating this lane as an open donor candidate again
|
||||
|
||||
### `Lykos/cube_trainer`
|
||||
|
||||
Current status:
|
||||
|
|
@ -618,7 +680,7 @@ Future widening rule:
|
|||
|
||||
HyperTwist now has symmetric source-backed authority across the current `71`-row curated set:
|
||||
|
||||
- `61` current non-live rows through `Packet 0R-A` through `Packet 0R-E`
|
||||
- `10` live rows through this live-lane preservation audit
|
||||
- `60` current non-live rows through `Packet 0R-A` through `Packet 0R-E`
|
||||
- `11` live rows through this live-lane preservation audit
|
||||
|
||||
For live-lane work, the next instance should not start from stale donor labels or from the raw mirror alone. It should start from this document, then the retained-set contract, then the repo-row license tracker.
|
||||
|
|
|
|||
|
|
@ -66,20 +66,20 @@ Document responsibilities are now strict:
|
|||
Current post-`Phase 1R` truth:
|
||||
|
||||
- curated HyperTwist shallow-eval set: `71`
|
||||
- currently verified live in checked Unreal surfaces: `10`
|
||||
- currently verified live in checked Unreal surfaces: `11`
|
||||
- rows with source-backed authority now visible in canonical docs: `71`
|
||||
- retained rows total: `68`
|
||||
- discarded from the active retained set: `3`
|
||||
|
||||
Retained split:
|
||||
|
||||
- landed/live preserve lanes: `10`
|
||||
- non-live active implementation-board rows: `49`
|
||||
- landed/live preserve lanes: `11`
|
||||
- non-live active implementation-board rows: `48`
|
||||
- non-live benchmark, oracle, or clean-room-later rows outside the active implementation board: `9`
|
||||
|
||||
The `49` non-live active implementation-board rows break down as:
|
||||
The `48` non-live active implementation-board rows break down as:
|
||||
|
||||
- straight permissive implementation candidates: `39`
|
||||
- straight permissive implementation candidates: `38`
|
||||
- boundary-sensitive adapter or sidecar candidates: `6`
|
||||
- restrictive clean-room-only candidates: `4`
|
||||
|
||||
|
|
@ -87,9 +87,9 @@ The `49` non-live active implementation-board rows break down as:
|
|||
|
||||
| Class | Count | Earliest next phase | Meaning |
|
||||
| --- | --- | --- | --- |
|
||||
| `landed_permissive_preserve` | `9` | ordinary first-party enhancement only | Already live. Preserve notices and attribution. Do not treat as speculative donor backlog. |
|
||||
| `landed_permissive_preserve` | `10` | ordinary first-party enhancement only | Already live. Preserve notices and attribution. Do not treat as speculative donor backlog. |
|
||||
| `landed_clean_room_preserve` | `1` | ordinary first-party enhancement only | Already live. Preserve the clean-room chain and work from first-party outputs, not the restrictive mirror. |
|
||||
| `phase3r_permissive_candidate` | `40` | `Phase 3R` | Retained for direct permissive implementation or bounded first-party adaptation. No clean-room lane is needed. |
|
||||
| `phase3r_permissive_candidate` | `38` | `Phase 3R` | Retained for direct permissive implementation or bounded first-party adaptation. No clean-room lane is needed. |
|
||||
| `phase4r_boundary_candidate` | `6` | `Phase 4R` | Retained only through explicit adapter, allowlist, sidecar, or notice-sensitive use. |
|
||||
| `phase5r_clean_room_candidate` | `4` | `Phase 5R` | Retained only through refreshed Model A / Model B clean-room work. |
|
||||
| `benchmark_oracle_only` | `9` | outside the active implementation board | Retained only for validation, parity, oracle behavior, or a later explicitly reopened clean-room-later lane. |
|
||||
|
|
@ -106,7 +106,7 @@ The `49` non-live active implementation-board rows break down as:
|
|||
|
||||
## Landed preserve lanes
|
||||
|
||||
These ten rows are the only currently verified live rows in checked Unreal surfaces.
|
||||
These eleven rows are the only currently verified live rows in checked Unreal surfaces.
|
||||
|
||||
### Landed permissive preserve
|
||||
|
||||
|
|
@ -116,6 +116,7 @@ These ten rows are the only currently verified live rows in checked Unreal surfa
|
|||
- `google/model-viewer` — `Apache-2.0`
|
||||
- `Hypercubers/hypercubing.xyz` — `MIT`
|
||||
- `Lykos/cube_trainer` — `MIT`
|
||||
- `met4citizen/TalkingHead` — `MIT`
|
||||
- `newyork-anthonyng/rubiks-cross-trainer` — `MIT`
|
||||
- `poliva/cubedex` — `MIT`
|
||||
- `tao-yu/Alg-Trainer` — `MIT`
|
||||
|
|
@ -168,6 +169,8 @@ Contract:
|
|||
|
||||
`google/model-viewer` has now also completed `Phase 3R-D` and moved into the landed preserve set.
|
||||
|
||||
`met4citizen/TalkingHead` has now also completed `Phase 3R-E` and moved into the landed preserve set.
|
||||
|
||||
The remaining non-live support-plane rows covered by `2R-B` are:
|
||||
|
||||
- `ecomfe/zrender` -> subordinate beneath landed `Phase 3R-C`
|
||||
|
|
@ -178,7 +181,6 @@ The remaining non-live support-plane rows covered by `2R-B` are:
|
|||
- `google/model-viewer/packages/space-opera` -> subordinate beneath landed `Phase 3R-D`
|
||||
- `KhronosGroup/glTF-Sample-Renderer` -> subordinate beneath landed `Phase 3R-D`
|
||||
- `KhronosGroup/glTF-Sample-Viewer` -> subordinate beneath landed `Phase 3R-D`
|
||||
- `met4citizen/TalkingHead` -> `Phase 3R-E`
|
||||
- `mrdoob/three.js`
|
||||
- `@react-spring/animated`
|
||||
- `@react-spring/core`
|
||||
|
|
@ -324,7 +326,7 @@ Do not:
|
|||
|
||||
`Phase 2R` is now closed and `Phase 3R-A`, `Phase 3R-B`, `Phase 3R-C`, and `Phase 3R-D` are now also closed.
|
||||
|
||||
The next bounded move after those closures is `Phase 3R-E`:
|
||||
The next bounded move after those closures is `Phase 3R-F`:
|
||||
|
||||
- widen `met4citizen/TalkingHead` as the retained embodied companion, narration, lip-sync, gesture, and subtitle lane
|
||||
- widen `mrdoob/three.js`, `pmndrs/react-three-fiber`, and `pmndrs/xr` as the retained browser `3D`, XR session, and spatial-support lane
|
||||
- preserve `Aarav2709/KubeTimr`, `Hypercubers/hypercubing.xyz`, `apache/echarts`, and `google/model-viewer` as landed permissive lanes rather than reclassifying any of them as open candidates
|
||||
|
|
|
|||
|
|
@ -0,0 +1,152 @@
|
|||
# HyperTwist Phase 3R Packet 3R-E TalkingHead Implementation
|
||||
|
||||
Created on `2026-05-13`
|
||||
|
||||
## Status
|
||||
|
||||
`Phase 3R / Packet 3R-E` is now `closed`.
|
||||
|
||||
This packet converts `met4citizen/TalkingHead` from the retained embodied companion anchor into a landed first-party HyperTwist embodied companion, narration, lip-sync, gesture, subtitle, and avatar-embed lane.
|
||||
|
||||
It does not reopen `Phase 0R`, `Phase 1R`, or `Phase 2R-B`.
|
||||
|
||||
Those earlier packets still own source-value extraction, retained-set routing, and ownership boundaries.
|
||||
|
||||
This packet owns the next question instead:
|
||||
|
||||
- what first-party implementation actually landed
|
||||
- which donor value was realized
|
||||
- what remains explicitly out of scope for this lane
|
||||
- what validation was completed
|
||||
- what the next bounded implementation move is after this landing
|
||||
|
||||
## Authority order
|
||||
|
||||
For future work on the `met4citizen/TalkingHead` lane, read in this order:
|
||||
|
||||
1. this packet for first-party landing scope, accepted widening, and validation result
|
||||
2. [HYPERTWIST_LIVE_LANES_SOURCE_AND_PRESERVATION_AUDIT_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_LIVE_LANES_SOURCE_AND_PRESERVATION_AUDIT_2026-05-13.md:1) for live-lane preserve posture
|
||||
3. [HYPERTWIST_PHASE_2R_PACKET_2R_B_OWNERSHIP_AND_ACCEPTANCE_CONTRACT_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_2R_PACKET_2R_B_OWNERSHIP_AND_ACCEPTANCE_CONTRACT_2026-05-13.md:1) for ownership boundaries and pre-widening acceptance markers
|
||||
4. [HYPERTWIST_PHASE_0R_PACKET_0R_B_EVALUATION_2026-05-12.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_0R_PACKET_0R_B_EVALUATION_2026-05-12.md:1) for source-value extraction and non-promotion rationale
|
||||
5. [REPO_LICENSE_TRACKING.md](C:/HyperTwist/docs/REPO_LICENSE_TRACKING.md:1) for license and notice obligations
|
||||
|
||||
## Packet licensing snapshot
|
||||
|
||||
- `met4citizen/TalkingHead`: `MIT`
|
||||
- sample avatars, media, and external TTS or JWT-backed service flows are separate provenance and deployment questions, not part of the code-license grant widened by this packet
|
||||
|
||||
Checked local notice surfaces:
|
||||
|
||||
- [LICENSE](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/LICENSE:1) currently carries the MIT grant for the checked code
|
||||
- [README.md](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/README.md:1) currently documents example avatar, voice-service, and demo-shell assumptions that remain outside the shippable first-party owner
|
||||
|
||||
## Packet result
|
||||
|
||||
`3R-E` lands `met4citizen/TalkingHead` as:
|
||||
|
||||
- `implemented_live_permissive`
|
||||
- `landed_permissive_preserve`
|
||||
|
||||
Current portfolio effect:
|
||||
|
||||
- curated HyperTwist shallow-eval set: `71`
|
||||
- currently verified live in checked Unreal surfaces: `11`
|
||||
- permissive live lanes: `10`
|
||||
- restrictive live clean-room lanes: `1`
|
||||
- active non-live implementation-board rows: `48`
|
||||
|
||||
## Donor source surfaces read
|
||||
|
||||
The source read for this widening remained bounded to the retained embodied companion, queued narration, subtitle and viseme timing, avatar-only embedding, retargeting, gesture and mood presentation, streaming playback, and listening-threshold domains:
|
||||
|
||||
- [LICENSE](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/LICENSE:1)
|
||||
- [README.md](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/README.md:1)
|
||||
- [package.json](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/package.json:1)
|
||||
- [modules/talkinghead.mjs](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/modules/talkinghead.mjs:1)
|
||||
- [modules/retargeter.mjs](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/modules/retargeter.mjs:1)
|
||||
- [modules/lipsync-en.mjs](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/modules/lipsync-en.mjs:1)
|
||||
- [modules/playback-worklet.js](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/modules/playback-worklet.js:1)
|
||||
- [examples/azure-audio-streaming.html](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/examples/azure-audio-streaming.html:1)
|
||||
- [tests/streaming-tests.html](C:/Workspaces/HyperTwist/mirrors/permissive/met4citizen/TalkingHead/tests/streaming-tests.html:1)
|
||||
|
||||
## First-party landing surfaces
|
||||
|
||||
The landed first-party Unreal surfaces are:
|
||||
|
||||
- [HyperTwistTrainingCompanionLibrary.h](C:/HyperTwist/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingCompanionLibrary.h:1)
|
||||
- [HyperTwistTrainingCompanionLibrary.cpp](C:/HyperTwist/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCompanionLibrary.cpp:1)
|
||||
- [HyperTwistTrainingRuntimeLibrary.h](C:/HyperTwist/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingRuntimeLibrary.h:1)
|
||||
- [HyperTwistTrainingRuntimeLibrary.cpp](C:/HyperTwist/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRuntimeLibrary.cpp:1)
|
||||
- [hypertwist-reference-incorporation-targets.json](C:/HyperTwist/UnrealHyperTwist/Content/HyperTwistTraining/MaterializedCatalog/hypertwist-reference-incorporation-targets.json:1)
|
||||
- [hypertwist-catalog-materialization-summary.json](C:/HyperTwist/UnrealHyperTwist/Content/HyperTwistTraining/MaterializedCatalog/hypertwist-catalog-materialization-summary.json:1)
|
||||
- [met4citizen-talkinghead-reference-pages.jsonl](C:/HyperTwist/UnrealHyperTwist/Content/HyperTwistTraining/MaterializedCatalog/raw-extracts/met4citizen-talkinghead-reference-pages.jsonl:1)
|
||||
|
||||
## Landed implementation scope
|
||||
|
||||
What landed:
|
||||
|
||||
- a first-party compiled embodied companion reference bundle with explicit speech-input, queue lifecycle, narration, subtitle, viseme, gesture, mood, avatar-embed, listening, and vendor-boundary contracts
|
||||
- a first-party runtime-library access layer for the bundled companion lane, including narration-contract lookup, avatar-embed lookup, vendor-boundary lookup, and subtitle checklist export
|
||||
- bundled first-party reference targets for narration, subtitle and viseme synchronization, avatar-only embedding, gesture and mood presentation, streaming and listening lifecycle, and TTS or asset adapter boundaries
|
||||
- bundled raw source-reference capture for the new `met4citizen/TalkingHead` reference-target families
|
||||
|
||||
What that means in practice:
|
||||
|
||||
- `met4citizen/TalkingHead` now owns the landed permissive embodied companion, narration, lip-sync, gesture, subtitle, and avatar-embed lane in HyperTwist
|
||||
- the landed surface is a first-party Unreal companion contract and runtime API, not a vague future donor note
|
||||
- sample avatars, direct vendor shells, and external TTS wiring remain explicit boundary surfaces rather than silently becoming product ownership
|
||||
|
||||
## Preserved landed value
|
||||
|
||||
The donor value that was actually promoted is:
|
||||
|
||||
- explicit queued narration behavior with voice parameters, markers, subtitles, viseme timing, and mood or gesture cues
|
||||
- explicit avatar-only embed behavior for bounded external-scene companion presence with camera-safe composition and retargeted motion
|
||||
- explicit gesture, mood, and pose presentation surfaces for acknowledgement, focus, celebration, and supportive coaching states
|
||||
- explicit streaming playback and listening-threshold lifecycle states with queue-buffer and underrun metrics
|
||||
- explicit vendor-adapter boundaries so voice-service wiring, avatar assets, and donor example shells remain replaceable and out of product-core ownership
|
||||
|
||||
## Excluded or non-promotion boundary
|
||||
|
||||
Do not promote this lane into:
|
||||
|
||||
- generic speech-engine ownership
|
||||
- external TTS vendor lock-in
|
||||
- generic avatar-product or character-platform ownership
|
||||
- sample avatar or donor media shipping assumptions
|
||||
- donor example-page shell, camera page, or tutorial framing
|
||||
|
||||
Rationale:
|
||||
|
||||
- this repo was retained and widened because it was the strongest bounded embodied companion donor in the set
|
||||
- its highest value is queue discipline, avatar embedding, subtitle and viseme timing, and coach-facing expression control, not host-application or vendor-product ownership
|
||||
- the vendor and asset seams remain useful precisely because they stay replaceable beneath the landed first-party owner
|
||||
|
||||
## Acceptance markers satisfied
|
||||
|
||||
The `2R-B` acceptance markers for this row are now satisfied in first-party Unreal surfaces:
|
||||
|
||||
- a first-party narration event contract exists with speech inputs, queue lifecycle states, output tags, and exclusions
|
||||
- a first-party avatar-embedding contract exists with scene and camera bindings plus explicit gesture and mood support
|
||||
- a first-party vendor-adapter boundary exists with replaceable voice-service and asset fields kept separate from first-party coach-owned fields
|
||||
- a first-party streaming and listening lifecycle exists with queue, stream-buffer, underrun, and microphone-threshold posture
|
||||
|
||||
## Validation
|
||||
|
||||
Validation completed for this packet:
|
||||
|
||||
- `git diff --check` passed apart from CRLF conversion warnings
|
||||
- JSON validation passed for the updated materialized-catalog files and workspace manifest
|
||||
- Unreal build succeeded with:
|
||||
- `C:\Program Files\Epic Games\UE_5.7\Engine\Build\BatchFiles\Build.bat UnrealHyperTwistEditor Win64 Development C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject -WaitMutex -NoHotReloadFromIDE`
|
||||
|
||||
Build result:
|
||||
|
||||
- `Succeeded` on `2026-05-13`
|
||||
|
||||
## Next move
|
||||
|
||||
The next bounded move is `Phase 3R-F`:
|
||||
|
||||
- widen `mrdoob/three.js`, `pmndrs/react-three-fiber`, and `pmndrs/xr` as the retained browser `3D`, XR session, and spatial-support lane
|
||||
- keep the newly landed `met4citizen/TalkingHead` embodied companion lane on preserve-and-enhance footing rather than treating it as an open donor candidate again
|
||||
|
|
@ -417,6 +417,31 @@ Next packet:
|
|||
|
||||
- `3R-E`
|
||||
|
||||
`Phase 3R / Packet 3R-E` is now closed.
|
||||
|
||||
- `Phase 3R-E` result doc:
|
||||
- `docs/HYPERTWIST_PHASE_3R_PACKET_3R_E_TALKINGHEAD_IMPLEMENTATION_2026-05-13.md`
|
||||
|
||||
Implementation result:
|
||||
|
||||
- `met4citizen/TalkingHead` is now landed as a first-party embodied companion, narration, lip-sync, gesture, subtitle, and avatar-embed lane
|
||||
- `met4citizen/TalkingHead` is now `implemented_live_permissive`
|
||||
- sample avatars, media, and external TTS or JWT-backed service flows remain boundary surfaces and are not silently widened by this packet
|
||||
- current verified live rows are now:
|
||||
- `11` total
|
||||
- `10` permissive
|
||||
- `1` restrictive clean-room
|
||||
- active non-live implementation-board rows are now `48`
|
||||
- the `met4citizen/TalkingHead` embodied companion anchor is no longer a queued `Phase 3R` candidate; it is a landed live lane
|
||||
|
||||
Validation result:
|
||||
|
||||
- `UnrealHyperTwistEditor` build succeeded for the landed widening packet
|
||||
|
||||
Next packet:
|
||||
|
||||
- `3R-F`
|
||||
|
||||
Mandatory read rule before implementing, benchmarking against, or clean-rooming any `0R-E` repo:
|
||||
|
||||
1. read `docs/HYPERTWIST_PHASE_0R_PACKET_0R_E_EVALUATION_2026-05-13.md`
|
||||
|
|
@ -444,20 +469,20 @@ Current curated HyperTwist shallow-eval set:
|
|||
|
||||
Current verified live implementation state in checked `UnrealHyperTwist` source and materialized training surfaces:
|
||||
|
||||
- `10` repos are implemented/live
|
||||
- `9` of those are permissive `MIT` or `Apache-2.0` lanes
|
||||
- `11` repos are implemented/live
|
||||
- `10` of those are permissive `MIT` or `Apache-2.0` lanes
|
||||
- `1` of those is a restrictive repo that was properly clean-roomed and then implemented
|
||||
|
||||
Current 2026-05-11 repo-row reset counts:
|
||||
|
||||
- `implemented_live_permissive`: `9`
|
||||
- `implemented_live_permissive`: `10`
|
||||
- `implemented_live_clean_room_verified`: `1`
|
||||
- `selected_not_live_permissive_candidate`: `39`
|
||||
- `selected_not_live_permissive_candidate`: `38`
|
||||
- `selected_not_live_boundary_sensitive`: `6`
|
||||
- `selected_not_live_clean_room_candidate`: `4`
|
||||
- `not_live_reference_or_discard_candidate`: `12`
|
||||
|
||||
### The ten currently implemented/live repos
|
||||
### The eleven currently implemented/live repos
|
||||
|
||||
Permissive `MIT` or `Apache-2.0` lanes already implemented/live:
|
||||
|
||||
|
|
@ -468,6 +493,7 @@ Permissive `MIT` or `Apache-2.0` lanes already implemented/live:
|
|||
- `Hypercubers/hypercubing.xyz`
|
||||
- `tao-yu/Alg-Trainer`
|
||||
- `Lykos/cube_trainer`
|
||||
- `met4citizen/TalkingHead`
|
||||
- `poliva/cubedex`
|
||||
- `newyork-anthonyng/rubiks-cross-trainer`
|
||||
|
||||
|
|
@ -519,17 +545,17 @@ At the moment, only one HyperTwist repo should be described this way:
|
|||
|
||||
HyperTwist should now proceed from the following rule:
|
||||
|
||||
- preserve the ten live lanes
|
||||
- preserve the eleven live lanes
|
||||
- do not reopen the `onionhoney/roux-trainers` lane as if it were an unresolved accidental donor import
|
||||
- do not treat the remaining `61` current non-live rows as already implemented
|
||||
- do not treat the remaining `60` current non-live rows as already implemented
|
||||
- keep `Phase 0R`, `Phase 1R`, and `Phase 2R` closed as completed packet classes
|
||||
- continue later-phase widening from the closed packet sequence, currently `Phase 3R-E`
|
||||
- continue later-phase widening from the closed packet sequence, currently `Phase 3R-F`
|
||||
|
||||
In practical terms:
|
||||
|
||||
- no, do **not** mass-revert the ten landed lanes
|
||||
- no, do **not** mass-revert the eleven landed lanes
|
||||
- no, do **not** pretend the remaining `61` current non-live rows are already implemented
|
||||
- yes, preserve the landed `Aarav2709/KubeTimr`, `Hypercubers/hypercubing.xyz`, `apache/echarts`, and `google/model-viewer` lanes as normal first-party enhancement surfaces
|
||||
- yes, preserve the landed `Aarav2709/KubeTimr`, `Hypercubers/hypercubing.xyz`, `apache/echarts`, `google/model-viewer`, and `met4citizen/TalkingHead` lanes as normal first-party enhancement surfaces
|
||||
- yes, widen the next retained permissive lane only through its closed packet stack
|
||||
|
||||
## Phase reset sequence
|
||||
|
|
@ -895,7 +921,7 @@ Only after that:
|
|||
|
||||
The clean practical sequence is:
|
||||
|
||||
1. preserve the ten landed lanes
|
||||
1. preserve the eleven landed lanes
|
||||
2. make the current truth explicit everywhere
|
||||
3. deep-evaluate the remaining `65`
|
||||
4. discard what should not survive
|
||||
|
|
@ -912,7 +938,8 @@ Current status:
|
|||
- `Phase 3R-B` is now also complete
|
||||
- `Phase 3R-C` is now also complete
|
||||
- `Phase 3R-D` is now also complete
|
||||
- the next bounded move is `Phase 3R-E` for `met4citizen/TalkingHead`
|
||||
- `Phase 3R-E` is now also complete
|
||||
- the next bounded move is `Phase 3R-F` for `mrdoob/three.js`, `pmndrs/react-three-fiber`, and `pmndrs/xr`
|
||||
|
||||
## Companion docs
|
||||
|
||||
|
|
|
|||
|
|
@ -7,14 +7,14 @@ This board is the readable row-by-row companion to the v6.3 CSVs. It is derived
|
|||
## Canonical summary
|
||||
|
||||
- Current curated HyperTwist shallow-eval set: `71` repos
|
||||
- Currently verified live in checked `UnrealHyperTwist` surfaces: `10` repos
|
||||
- Live permissive lanes: `9`
|
||||
- Currently verified live in checked `UnrealHyperTwist` surfaces: `11` repos
|
||||
- Live permissive lanes: `10`
|
||||
- Live restrictive clean-room lanes: `1`
|
||||
- Remaining rows requiring `Phase 0R` deep repo evaluation: `0`
|
||||
|
||||
## 2026-05-13 packet and contract overlay
|
||||
|
||||
The baseline live-state counts above now include the landed `Phase 3R-C` analytics lane and the landed `Phase 3R-D` browser viewer lane, while `Phase 0R` and `Phase 1R` remain closed.
|
||||
The baseline live-state counts above now include the landed `Phase 3R-C` analytics lane, the landed `Phase 3R-D` browser viewer lane, and the landed `Phase 3R-E` embodied companion lane, while `Phase 0R` and `Phase 1R` remain closed.
|
||||
|
||||
Read together with:
|
||||
|
||||
|
|
@ -32,6 +32,7 @@ Read together with:
|
|||
- [HYPERTWIST_PHASE_3R_PACKET_3R_B_HYPERCUBING_XYZ_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_B_HYPERCUBING_XYZ_IMPLEMENTATION_2026-05-13.md:1)
|
||||
- [HYPERTWIST_PHASE_3R_PACKET_3R_C_ECHARTS_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_C_ECHARTS_IMPLEMENTATION_2026-05-13.md:1)
|
||||
- [HYPERTWIST_PHASE_3R_PACKET_3R_D_MODEL_VIEWER_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_D_MODEL_VIEWER_IMPLEMENTATION_2026-05-13.md:1)
|
||||
- [HYPERTWIST_PHASE_3R_PACKET_3R_E_TALKINGHEAD_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_E_TALKINGHEAD_IMPLEMENTATION_2026-05-13.md:1)
|
||||
|
||||
That overlay closes evaluation for:
|
||||
|
||||
|
|
@ -51,7 +52,7 @@ Important authority correction:
|
|||
- `Packet 0R-C` is now the deep-source value-extraction and exclusion-rationale authority for its six boundary-sensitive repos
|
||||
- `Packet 0R-D` is now the governance and Model A authority for its four restrictive clean-room repos
|
||||
- `Packet 0R-E` is now the deep-source benchmark, reference, clean-room-later, and discard authority for its twelve rows
|
||||
- the live-lane preservation audit is now the source-backed authority for the nine already-landed rows
|
||||
- the live-lane preservation audit is now the source-backed authority for the eleven already-landed rows
|
||||
- `Phase 1R` is now the retained-set contract and handoff authority for all post-`Phase 0R` routing
|
||||
- `Phase 2R-A` is now the core ownership and acceptance authority for the five retained core permissive rows
|
||||
- `Phase 2R-B` is now the support-plane ownership and acceptance authority for the primary retained permissive support rows
|
||||
|
|
@ -60,7 +61,8 @@ Important authority correction:
|
|||
- `Phase 3R-B` is now the landed implementation authority for `Hypercubers/hypercubing.xyz`
|
||||
- `Phase 3R-C` is now the landed implementation authority for `apache/echarts`
|
||||
- `Phase 3R-D` is now the landed implementation authority for `google/model-viewer`
|
||||
- future enhancement or preservation work for the ten landed rows should start from the live-lane audit, then the repo-specific landed packet where one exists, not from this board alone
|
||||
- `Phase 3R-E` is now the landed implementation authority for `met4citizen/TalkingHead`
|
||||
- future enhancement or preservation work for the eleven landed rows should start from the live-lane audit, then the repo-specific landed packet where one exists, not from this board alone
|
||||
- future implementation of those seven repos should start from `Packet 0R-A`, not from this board alone
|
||||
- future implementation of the `0R-B` permissive set should start from `Packet 0R-B`, then the relevant closed `2R-B` or `2R-C` ownership packet, not from this board alone
|
||||
- future implementation of those six boundary-sensitive repos should start from `Packet 0R-C`, not from this board alone
|
||||
|
|
@ -75,7 +77,7 @@ Packet overlay result:
|
|||
- all `6` boundary-sensitive rows have now been packet-evaluated
|
||||
- all `4` restrictive clean-room rows have now been packet-evaluated
|
||||
- all `12` reference, benchmark, reserve, and discard rows have now been packet-evaluated
|
||||
- all `10` live rows now also have symmetric source-backed preservation authority
|
||||
- all `11` live rows now also have symmetric source-backed preservation authority
|
||||
- `Phase 2R-A` is now closed for the five core retained permissive rows
|
||||
- `Phase 2R-B` is now closed for the retained permissive support-plane owners, subordinate packages, and helper/dependency lanes in scope
|
||||
- `Phase 2R-C` is now closed for the final retained permissive `0R-B` residual rows
|
||||
|
|
@ -83,23 +85,25 @@ Packet overlay result:
|
|||
- `Phase 3R-B` is now closed for the `Hypercubers/hypercubing.xyz` taxonomy, notation, progression, software-reference, and leaderboard-contract lane
|
||||
- `Phase 3R-C` is now closed for the `apache/echarts` analytics, reporting, export, and progress-visualization lane
|
||||
- `Phase 3R-D` is now closed for the `google/model-viewer` browser presentation, compact editor, and standards-aware asset-QA lane
|
||||
- `Phase 3R-E` is now closed for the `met4citizen/TalkingHead` embodied companion, narration, lip-sync, gesture, subtitle, and avatar-embed lane
|
||||
- `Phase 2R` is now fully closed for the retained permissive set
|
||||
- `Aarav2709/KubeTimr` is now newly proven live in checked Unreal surfaces through `Phase 3R-A`
|
||||
- `Hypercubers/hypercubing.xyz` is now newly proven live in checked Unreal surfaces through `Phase 3R-B`
|
||||
- `apache/echarts` is now newly proven live in checked Unreal surfaces through `Phase 3R-C`
|
||||
- `google/model-viewer` is now newly proven live in checked Unreal surfaces through `Phase 3R-D`
|
||||
- `met4citizen/TalkingHead` is now newly proven live in checked Unreal surfaces through `Phase 3R-E`
|
||||
- `Phase 0R` is now fully closed
|
||||
- `Phase 1R` is now fully closed
|
||||
- the `0R-E` result split is:
|
||||
- `9` retained benchmark, oracle, or clean-room-later rows
|
||||
- `3` discarded active-set rows
|
||||
- the next bounded move is `Phase 3R-E`
|
||||
- the next bounded move is `Phase 3R-F`
|
||||
|
||||
## Count by live-state class
|
||||
|
||||
- `implemented_live_permissive`: `9`
|
||||
- `implemented_live_permissive`: `10`
|
||||
- `implemented_live_clean_room_verified`: `1`
|
||||
- `selected_not_live_permissive_candidate`: `40`
|
||||
- `selected_not_live_permissive_candidate`: `38`
|
||||
- `selected_not_live_boundary_sensitive`: `6`
|
||||
- `selected_not_live_clean_room_candidate`: `4`
|
||||
- `not_live_reference_or_discard_candidate`: `12`
|
||||
|
|
@ -115,15 +119,17 @@ Packet overlay result:
|
|||
|
||||
These are currently verified live in checked Unreal surfaces and are permissive lanes already implemented.
|
||||
|
||||
Count: `8`
|
||||
Count: `10`
|
||||
|
||||
| Repo | License | Prior bucket | Prior action | Current live state | Reset lane | Next step |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| `Aarav2709/KubeTimr` | `MIT` | Donor Bench | `repurpose` | `implemented_live_permissive` | `landed_permissive_preserve` | `Phase 3R-A` closed. Preserve as the landed first-party timer, inspection, splits, stats, persistence, and timer-scoped replay lane; start future widening from the live-lane audit, then the `3R-A` implementation packet, then `REPO_LICENSE_TRACKING.md`. |
|
||||
| `apache/echarts` | `Apache-2.0` | Donor Bench | `repurpose` | `implemented_live_permissive` | `landed_permissive_preserve` | `Phase 3R-C` closed. Preserve as the landed first-party analytics, reporting, export, and progress-visualization lane; start future widening from the live-lane audit, then the `3R-C` implementation packet, then `REPO_LICENSE_TRACKING.md`. |
|
||||
| `abunickabhi/5style-Trainer` | `MIT` | Donor Bench | `repurpose` | `implemented_live_permissive` | `landed_permissive_preserve` | Phase 1R closed. Preserve as a landed first-party permissive lane; keep notices and attribution visible; start future widening from the live-lane audit, then `REPO_LICENSE_TRACKING.md`, then ordinary owned enhancement work. |
|
||||
| `google/model-viewer` | `Apache-2.0` | Donor Bench | `repurpose` | `implemented_live_permissive` | `landed_permissive_preserve` | `Phase 3R-D` closed. Preserve as the landed first-party browser presentation, compact editor, and standards-aware asset-QA lane; start future widening from the live-lane audit, then the `3R-D` implementation packet, then `REPO_LICENSE_TRACKING.md`. |
|
||||
| `Hypercubers/hypercubing.xyz` | `MIT` | Locked Strategic Donor | `repurpose` | `implemented_live_permissive` | `landed_permissive_preserve` | `Phase 3R-B` closed. Preserve as the landed first-party hypercubing knowledge, notation, progression, software-reference, and leaderboard-contract lane; start future widening from the live-lane audit, then the `3R-B` implementation packet, then `REPO_LICENSE_TRACKING.md`. |
|
||||
| `Lykos/cube_trainer` | `MIT` | Locked Strategic Donor | `integrate` | `implemented_live_permissive` | `landed_permissive_preserve` | Phase 1R closed. Preserve as a landed first-party permissive lane; keep notices and attribution visible; start future widening from the live-lane audit, then `REPO_LICENSE_TRACKING.md`, then ordinary owned enhancement work. |
|
||||
| `met4citizen/TalkingHead` | `MIT` | Donor Bench | `repurpose` | `implemented_live_permissive` | `landed_permissive_preserve` | `Phase 3R-E` closed. Preserve as the landed first-party embodied companion, narration, lip-sync, gesture, subtitle, and avatar-embed lane; start future widening from the live-lane audit, then the `3R-E` implementation packet, then `REPO_LICENSE_TRACKING.md`. |
|
||||
| `newyork-anthonyng/rubiks-cross-trainer` | `MIT` | Donor Bench | `repurpose` | `implemented_live_permissive` | `landed_permissive_preserve` | Phase 1R closed. Preserve as a landed first-party permissive lane; keep notices and attribution visible; start future widening from the live-lane audit, then `REPO_LICENSE_TRACKING.md`, then ordinary owned enhancement work. |
|
||||
| `poliva/cubedex` | `MIT` | Locked Strategic Donor | `integrate` | `implemented_live_permissive` | `landed_permissive_preserve` | Phase 1R closed. Preserve as a landed first-party permissive lane; keep notices and attribution visible; start future widening from the live-lane audit, then `REPO_LICENSE_TRACKING.md`, then ordinary owned enhancement work. |
|
||||
| `tao-yu/Alg-Trainer` | `MIT` | Locked Parallel Foundation | `integrate` | `implemented_live_permissive` | `landed_permissive_preserve` | Phase 1R closed. Preserve as a landed first-party permissive lane; keep notices and attribution visible; start future widening from the live-lane audit, then `REPO_LICENSE_TRACKING.md`, then ordinary owned enhancement work. |
|
||||
|
|
@ -142,7 +148,7 @@ Count: `1`
|
|||
|
||||
These rows are retained, not currently proven live, and have now cleared `Phase 0R` deep evaluation. `Phase 1R` places them on the active implementation board with earliest re-entry through `Phase 3R`.
|
||||
|
||||
Count: `40`
|
||||
Count: `38`
|
||||
|
||||
| Repo | License | Prior bucket | Prior action | Current live state | Reset lane | Next step |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
|
|
@ -155,7 +161,6 @@ Count: `40`
|
|||
| `cahidenes/rubiks-cube-solver` | `MIT` | Locked Strategic Donor | `integrate` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 2R-C` closed. Freeze as part of the `Phase 6R-E` recognition-comparison adjunct lane for face placement and cube-string cross-checks behind the retained recognition anchors; do not widen in `Phase 3R`. |
|
||||
| `ecomfe/echarts-gl` | `BSD-3-Clause` | Merge Bench | `integrate` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 3R-C` closed for the anchor. Retain as an optional subordinate `3D` analytics and explainer sidecar beneath the landed `apache/echarts` lane; do not treat it as separately live. |
|
||||
| `ecomfe/zrender` | `BSD-3-Clause` | Merge Bench | `integrate` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 3R-C` closed for the anchor. Retain as the lower-level subordinate `2D` substrate beneath the landed `apache/echarts` lane; do not treat it as separately live. |
|
||||
| `google/model-viewer` | `Apache-2.0` | Donor Bench | `repurpose` | `implemented_live_permissive` | `landed_permissive_preserve` | `Phase 3R-D` closed. Preserve as the landed first-party browser presentation, compact editor, and standards-aware asset-QA lane; start future widening from the live-lane audit, then the `3R-D` implementation packet, then `REPO_LICENSE_TRACKING.md`. |
|
||||
| `google/model-viewer/packages/model-viewer-effects` | `Apache-2.0` | Merge Bench | `integrate` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 3R-D` closed for the anchor. Retain as a subordinate emphasis and effects package beneath the landed `google/model-viewer` lane; do not treat it as separately live. |
|
||||
| `google/model-viewer/packages/modelviewer.dev` | `Apache-2.0` | Merge Bench | `integrate` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 3R-D` closed for the anchor. Retain as subordinate docs and demo infrastructure beneath the landed `google/model-viewer` lane; do not treat it as separately live or as a product-shell owner. |
|
||||
| `google/model-viewer/packages/render-fidelity-tools` | `Apache-2.0` | Merge Bench | `integrate` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 3R-D` closed for the anchor. Retain as the subordinate fidelity-oracle and regression sidecar beneath the landed `google/model-viewer` lane; do not treat it as separately live. |
|
||||
|
|
@ -164,7 +169,6 @@ Count: `40`
|
|||
| `KhronosGroup/glTF-Sample-Renderer` | `Apache-2.0` | Merge Bench | `integrate` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 3R-D` closed for the anchor. Retain as the subordinate renderer/reference substrate beneath the landed `google/model-viewer` asset-QA lane; do not treat it as separately live. |
|
||||
| `KhronosGroup/glTF-Sample-Viewer` | `Apache-2.0` | Donor Bench | `repurpose` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 3R-D` closed for the anchor. Retain as the subordinate standards-aware asset QA and validation sidecar beneath the landed `google/model-viewer` lane; do not treat it as separately live. |
|
||||
| `kkoomen/qbr` | `MIT` | Locked Foundation | `integrate` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 2R-A` closed. Freeze as the `Phase 6R-B` calibration, perceptual color matching, contour ordering, and scan-state extraction anchor; keep browser-side correction ownership with `vivaansinghvi07/rubix-cube-solver`. |
|
||||
| `met4citizen/TalkingHead` | `MIT` | Donor Bench | `repurpose` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 2R-B` closed. Freeze as the `Phase 3R-E` embodied companion, narration, lip-sync, gesture, and subtitle anchor; widen only from the `2R-B` ownership contract, then `0R-B`, then `REPO_LICENSE_TRACKING.md`. |
|
||||
| `mrdoob/three.js` | `MIT` | Donor Bench | `repurpose` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 2R-B` closed. Retain as the commodity `Phase 3R-F` browser `3D` substrate beneath higher-level support surfaces; do not let it displace the Unreal-first runtime stance. |
|
||||
| `NuiLab/code-vr` | `MIT` | Donor Bench | `repurpose` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 2R-C` closed. Freeze as the `Phase 6R-F` symbolic-to-spatial XR pedagogy experiment lane only; do not let it own the practical browser XR runtime. |
|
||||
| `pissang/clay-viewer` | `BSD-3-Clause` | Merge Bench | `integrate` | `selected_not_live_permissive_candidate` | `phase0r_permissive_eval_then_implement` | `Phase 2R-C` closed. Freeze as part of the optional `Phase 3R-G` alternative browser viewer/editor comparison lane subordinate to `google/model-viewer`; widen only if a real sidecar gap remains after the primary browser stack exists. |
|
||||
|
|
@ -238,8 +242,8 @@ Count: `12`
|
|||
|
||||
## Implementation rule going forward
|
||||
|
||||
- Preserve the ten landed lanes as current truth.
|
||||
- Preserve the eleven landed lanes as current truth.
|
||||
- Keep `onionhoney/roux-trainers` explicitly marked as the only currently verified restrictive clean-room lane already implemented.
|
||||
- `Phase 0R` is now fully closed for the remaining `61` non-live rows.
|
||||
- `Phase 0R` is now fully closed for the remaining `60` non-live rows.
|
||||
- `Phase 1R` is now the routing authority for retained-set widening and benchmark exclusion.
|
||||
- The next bounded move is `Phase 3R-E` for the retained `met4citizen/TalkingHead` embodied companion, narration, lip-sync, gesture, and subtitle lane.
|
||||
- The next bounded move is `Phase 3R-F` for the retained `mrdoob/three.js`, `pmndrs/react-three-fiber`, and `pmndrs/xr` browser `3D`, XR session, and spatial-support lane.
|
||||
|
|
|
|||
|
|
@ -53,11 +53,11 @@ Do not use it as the primary architecture ledger. The architecture and donor dec
|
|||
This file now also preserves the current truth that future models must not lose:
|
||||
|
||||
- current curated HyperTwist shallow-eval set: `71` repos
|
||||
- currently verified live/implemented in checked `UnrealHyperTwist` surfaces: `10`
|
||||
- permissive live lanes: `9`
|
||||
- currently verified live/implemented in checked `UnrealHyperTwist` surfaces: `11`
|
||||
- permissive live lanes: `10`
|
||||
- restrictive live lanes: `1`
|
||||
|
||||
The nine permissive live lanes are:
|
||||
The ten permissive live lanes are:
|
||||
|
||||
- `Aarav2709/KubeTimr`
|
||||
- `apache/echarts`
|
||||
|
|
@ -66,6 +66,7 @@ The nine permissive live lanes are:
|
|||
- `Hypercubers/hypercubing.xyz`
|
||||
- `tao-yu/Alg-Trainer`
|
||||
- `Lykos/cube_trainer`
|
||||
- `met4citizen/TalkingHead`
|
||||
- `poliva/cubedex`
|
||||
- `newyork-anthonyng/rubiks-cross-trainer`
|
||||
|
||||
|
|
@ -117,7 +118,8 @@ Current practical interpretation:
|
|||
- the landed `Hypercubers/hypercubing.xyz` widening packet now lives in `docs/HYPERTWIST_PHASE_3R_PACKET_3R_B_HYPERCUBING_XYZ_IMPLEMENTATION_2026-05-13.md`
|
||||
- the landed `apache/echarts` widening packet now lives in `docs/HYPERTWIST_PHASE_3R_PACKET_3R_C_ECHARTS_IMPLEMENTATION_2026-05-13.md`
|
||||
- the landed `google/model-viewer` widening packet now lives in `docs/HYPERTWIST_PHASE_3R_PACKET_3R_D_MODEL_VIEWER_IMPLEMENTATION_2026-05-13.md`
|
||||
- the next bounded move is `Phase 3R-E`
|
||||
- the landed `met4citizen/TalkingHead` widening packet now lives in `docs/HYPERTWIST_PHASE_3R_PACKET_3R_E_TALKINGHEAD_IMPLEMENTATION_2026-05-13.md`
|
||||
- the next bounded move is `Phase 3R-F`
|
||||
|
||||
Companion docs:
|
||||
|
||||
|
|
@ -1243,7 +1245,7 @@ Current licensing judgment:
|
|||
|
||||
- repo code is usable for HyperTwist under `MIT`
|
||||
- not a clean-room case
|
||||
- treat as a strategic donor for the embodied coach and companion lane
|
||||
- treat as a landed permissive preserve lane for the embodied coach and companion surface
|
||||
|
||||
Source basis:
|
||||
|
||||
|
|
@ -1266,6 +1268,14 @@ Important distinction:
|
|||
- gesture, emoji, mood, and pose orchestration
|
||||
- Mixamo-style retargeting helpers
|
||||
- low-latency streaming audio playback with underrun/queue metrics
|
||||
- this lane is now landed/live in first-party Unreal surfaces through [HYPERTWIST_PHASE_3R_PACKET_3R_E_TALKINGHEAD_IMPLEMENTATION_2026-05-13.md](C:/HyperTwist/docs/HYPERTWIST_PHASE_3R_PACKET_3R_E_TALKINGHEAD_IMPLEMENTATION_2026-05-13.md:1)
|
||||
|
||||
Current implementation rule:
|
||||
|
||||
- preserve as a landed permissive lane
|
||||
- preserve the checked MIT notice
|
||||
- keep sample-avatar, media, and external voice-service provenance separate from the code-license record
|
||||
- read the landed `3R-E` packet and the live-lane audit before widening this lane further
|
||||
|
||||
Approved working posture:
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ Hypercubers/hypercubing.xyz,https://github.com/Hypercubers/hypercubing.xyz,Hyper
|
|||
Aarav2709/KubeTimr,https://github.com/Aarav2709/KubeTimr,HyperTwist,Donor Bench,donor bench,repurpose,moderate modification,MIT,known_from_reference_material,uploaded_reference_docs,permissive_or_noncopyleft_known,direct_incorporation_ok,"This repo is permissively licensed and currently best treated as a focused subsystem donor for timer-state logic, split-phase handling, local persistence, and keyboard-first practice flow. Selective incorporation is legally straightforward, but the product shell should still be reshaped to fit HyperTwist.",high,routine-review-only,v6.3_final_source_of_truth,implemented_live_permissive,landed_permissive_preserve,"Phase 3R-A closed. Preserve as the landed first-party timer, inspection, splits, stats, persistence, and timer-scoped replay lane; start future widening from the live-lane audit, then the 3R-A implementation packet, then REPO_LICENSE_TRACKING.md."
|
||||
roice3/MagicTile,https://github.com/roice3/MagicTile,HyperTwist,Locked Strategic Donor,locked strategic donor,repurpose,moderate modification,MIT,known_from_reference_material,uploaded_reference_docs,permissive_or_noncopyleft_known,direct_incorporation_ok,The repo is MIT and is explicitly retained as a top-tier geometry/topology donor. Direct donor use is legally straightforward if the architecture benefits from it.,high,permissive-top-tier-donor,v6.3_final_source_of_truth,selected_not_live_permissive_candidate,phase0r_permissive_eval_then_implement,"Phase 1R closed. Retain as a Phase 3R permissive implementation candidate; implement only from its packet authority and the retained-set contract, not by reopening Phase 0R."
|
||||
PostHog/posthog,https://github.com/PostHog/posthog,HyperTwist,,donor bench,repurpose,moderate modification,MIT outside ee/; enterprise-restricted in ee/,known_from_reference_material,uploaded_reference_docs,mixed_or_boundary_sensitive_known,bounded_sidecar_or_selective_reimplementation,"The repo is mixed-license: MIT outside ee/ and enterprise-restricted inside ee/. Use only clearly MIT paths as bounded telemetry, replay, and feature-governance donor material, and exclude or reimplement enterprise-gated paths.",high,mixed-license-path-review-required,v6.3_final_source_of_truth,selected_not_live_boundary_sensitive,phase0r_boundary_sensitive_eval_then_adapter_or_sidecar,Phase 1R closed. Retain as a Phase 4R bounded telemetry and replay sidecar candidate; keep ee/ excluded and use explicit allowlists or first-party reimplementation where needed.
|
||||
met4citizen/TalkingHead,https://github.com/met4citizen/TalkingHead,HyperTwist,Donor Bench,donor bench,repurpose,moderate modification,MIT,known_from_reference_material,uploaded_reference_docs,permissive_or_noncopyleft_known,direct_incorporation_ok,The code license is MIT and direct use is allowed. Treat it as a bounded browser-side donor for embodied coach presentation rather than as a product shell.,high,standard-notice-review,v6.3_markdown_backfill,selected_not_live_permissive_candidate,phase0r_permissive_eval_then_implement,"Phase 1R closed. Retain as a Phase 3R permissive implementation candidate; implement only from its packet authority and the retained-set contract, not by reopening Phase 0R."
|
||||
met4citizen/TalkingHead,https://github.com/met4citizen/TalkingHead,HyperTwist,Donor Bench,donor bench,repurpose,moderate modification,MIT,known_from_reference_material,uploaded_reference_docs,permissive_or_noncopyleft_known,direct_incorporation_ok,The code license is MIT and direct use is allowed. Treat it as a bounded browser-side donor for embodied coach presentation rather than as a product shell.,high,standard-notice-review,v6.3_markdown_backfill,implemented_live_permissive,landed_permissive_preserve,"Phase 3R-E closed. Preserve as the landed first-party embodied companion, narration, lip-sync, gesture, subtitle, and avatar-embed lane; start future widening from the live-lane audit, then the 3R-E implementation packet, then REPO_LICENSE_TRACKING.md."
|
||||
apache/echarts,https://github.com/apache/echarts,HyperTwist,Donor Bench,donor bench,repurpose,moderate modification,Apache-2.0,known_from_reference_material,uploaded_reference_docs,permissive_or_noncopyleft_known,direct_incorporation_ok,The code license is Apache-2.0 and direct use is allowed. Treat it as a bounded reporting and analytics donor.,high,notice-file-review,v6.3_markdown_backfill,implemented_live_permissive,landed_permissive_preserve,"Phase 3R-C closed. Preserve as the landed first-party analytics, reporting, export, and progress-visualization lane; start future widening from the live-lane audit, then the 3R-C implementation packet, then REPO_LICENSE_TRACKING.md."
|
||||
ecomfe/echarts-gl,https://github.com/ecomfe/echarts-gl,HyperTwist,Merge Bench,merge bench,integrate,moderate modification,BSD-3-Clause,known_from_reference_material,uploaded_reference_docs,permissive_or_noncopyleft_known,direct_incorporation_ok,The code license is BSD-3-Clause and direct use is allowed. Treat it as a bounded 3D analytics extension rather than a runtime foundation.,high,standard-notice-review,v6.3_markdown_backfill,selected_not_live_permissive_candidate,phase0r_permissive_eval_then_implement,"Phase 3R-C closed for the anchor. Retain as an optional subordinate 3D analytics and explainer sidecar beneath the landed apache/echarts lane; do not treat it as separately live."
|
||||
KhronosGroup/glTF-Sample-Viewer,https://github.com/KhronosGroup/glTF-Sample-Viewer,HyperTwist,Donor Bench,donor bench,repurpose,moderate modification,Apache-2.0,known_from_reference_material,uploaded_reference_docs,permissive_or_noncopyleft_known,direct_incorporation_ok,The code license is Apache-2.0 and direct use is allowed. Treat it as a bounded standards-viewer and asset-QA donor.,high,notice-file-review,v6.3_markdown_backfill,selected_not_live_permissive_candidate,phase0r_permissive_eval_then_implement,"Phase 3R-D closed for the anchor. Retain as the subordinate standards-aware asset QA and validation sidecar beneath the landed google/model-viewer lane; do not treat it as separately live."
|
||||
|
|
|
|||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -275,7 +275,7 @@ rhasspy/piper,https://github.com/rhasspy/piper,multi-project,Donor Bench,Cross-p
|
|||
7) Reasons to promote / retain / demote
|
||||
8) Confidence change after source audit
|
||||
9) Open questions / blockers","Primary: Phase G v4 board (canonical ranking and current bucket); Operational v3 board filtered to this repo; Merger matrix rows involving this repo; VS Code packet row for this repo, if present. Optional: Cluster narratives row for matching cluster; Bookmark occurrence rows for this repo. Do not attach v1/v2 or preliminary memo unless a judgment conflict, lineage ambiguity, or rationale gap needs arbitration.","rhasspy/piper is placed in Donor Bench for multi-project because it provides the leanest current local TTS runtime seam in the voice stack. Recommended action remains repurpose, but the real retained value is ONNX and eSpeak runtime simplicity, streaming output, and deployable local HTTP wrapping rather than broad voice-platform scope.","Useful subsystem donor for multi-project, primarily in the 'Cross-project / future-adjacent' role; lean direct local TTS sidecar candidate.","Audit rhasspy/piper as a voice / multimodal I/O candidate for multi-project. Do not stop at README-level features. Inspect: C++ runtime core, voice loading and download path, streaming output, HTTP service boundary, speaker and phonemization config, and selected voice artifact constraints. Decide whether it should remain the lean direct local TTS sidecar candidate and what should stay behind a bounded local voice seam. Test the three merger paths in order: 1) project-local anchor [base + donor]; 2) shared portfolio utility [augmenter]; 3) cross-project transfer candidate [future merger]. Return hidden modules, reusable schemas, protocol layers, runtime boundaries, tests/fixtures, and any subsystem stronger than the visible shell.",MU_misc_0004,MU_misc,rhasspy/piper,,,,,,,Original global P0-P3 source audit retained,MIT code; voice artifacts reviewed separately,known_from_reference_material,uploaded_reference_docs,no,,,,Supplemental intake references are advisory only; v6 adjudication remains the source of truth.,Potentially relevant,yes,v6 unified all-project source-of-truth pack,v5_carry_forward,,v6_unified_source_of_truth_pack,4,3,71.0,permissive_or_noncopyleft_known,direct_incorporation_ok,"The code license is MIT and direct use is allowed. The real review point is selected voice artifacts, not the runtime code; keep voice selection separate from code adoption.",Use directly as a bounded local TTS sidecar or simple HTTP service; keep selected voice artifacts under separate review.,"Typically preserve notices, attribution, and license text where required; review chosen voices or model cards separately from the code license.",Usually unnecessary unless you later replace the runtime for packaging or architecture reasons.,high,voice-artifact-review-required,yes,,,,,,,,,,,,,v6.3_final_source_of_truth,Merged v6.1 copyleft layer and v6.2 SRE layer; use v6.3 docs + workbook as canonical handoff.,,,
|
||||
met4citizen/TalkingHead,https://github.com/met4citizen/TalkingHead,HyperTwist,Donor Bench,Browser embodied coach surface,P2,,,,,,medium,"Retain the reusable avatar, lip-sync, and retargeting layers, but replace the demo shell, asset assumptions, and voice-service integration with HyperTwist-owned surfaces.",repurpose,moderate modification,Determine whether TalkingHead should remain the primary embodied coach donor and which runtime seams should stay bounded.,"avatar runtime, lip-sync queueing, streamed speech, subtitle timing, avatarOnly embedding, retargeting","Inspect modules, examples, tests, site config, streaming demos, retargeter, and playback worklet code. Look for embodied-coach embedding, lip-sync, subtitle timing, gesture and expression surfaces, and asset assumptions.",Inspect talkinghead runtime; speech queueing and streaming; viseme and blendshape flow; avatarOnly embedding; retargeting; and audio worklet behavior.,"Repurpose selected subsystems rather than the whole product. Mine the repo for embodied coach avatar runtime, lip-sync and subtitle timing, avatar-only embedding, retargeting, and streamed speech playback; keep what shortens build time, but rebind assets, voice services, and UI shell to the HyperTwist architecture.",,Repurpose here means: turn it into a browser-side embodied coach or companion layer.,,,,,,,,,,,,"Upgrade if source reveals unusually reusable browser-runtime seams, clean adapter boundaries, robust tests, and direct leverage for HyperTwist companion surfaces.","Demote if retained value is mostly commodity glue, tightly bound to upstream shell assumptions, or clearly dominated by stronger neighboring repos in the same lane.",Capability inventory + salvage targets + donor-tier verdict,1) Confirmed source-backed browser/XR capabilities; 2) Best retained modules; 3) Boundaries to keep outside HyperTwist core; 4) Recommended pairing or dependency posture; 5) Risks or licensing notes.,Primary: HT_browser_surface cluster packet plus the repo-specific Markdown dossier. Optional: companion browser/XR rows in the same cluster.,"met4citizen/TalkingHead is placed in Donor Bench for HyperTwist because it provides embodied coach UI, streaming lip-sync, retargeting, and avatar-only embedding behavior. Recommended action remains repurpose, but the retained value is a bounded browser coach surface rather than a general avatar product.","Useful subsystem donor for HyperTwist, primarily in the browser companion layer; strongest embodied coach and avatar presentation donor in the current stack.","Audit met4citizen/TalkingHead as a browser embodied-coach candidate for HyperTwist. Inspect the avatar runtime, streaming lip-sync, subtitle timing, avatarOnly embedding, retargeting, and audio worklet behavior. Decide which seams can be used directly and which must remain bounded behind the HyperTwist coaching shell.",HT_browser_surface_0001,HT_browser_surface,met4citizen/talkinghead,,,,,,,,MIT,known_from_reference_material,uploaded_reference_docs,,,,,,,,,,,v6_unified_source_of_truth_pack,,,,permissive_or_noncopyleft_known,direct_incorporation_ok,The code license is MIT and direct use is allowed. Treat it as a bounded browser-side donor for embodied coach presentation rather than as a product shell.,"Use directly as a bounded browser-side dependency or adapter layer; keep voice services, product logic, and asset provenance outside the upstream shell.","Typically preserve notices, attribution, and license text where required; review sample avatars or media separately from the code license.",Usually unnecessary unless you later replace a narrow upstream layer for product-shaping reasons.,high,standard-notice-review,yes,,,,,,,,,,,,,v6.3_markdown_backfill,Backfilled from canonized Markdown dossier pass on 2026-04-24.,selected_not_live_permissive_candidate,phase0r_permissive_eval_then_implement,"Phase 1R closed. Retain as a Phase 3R permissive implementation candidate; implement only from its packet authority and the retained-set contract, not by reopening Phase 0R."
|
||||
met4citizen/TalkingHead,https://github.com/met4citizen/TalkingHead,HyperTwist,Donor Bench,Browser embodied coach surface,P2,,,,,,medium,"Retain the reusable avatar, lip-sync, and retargeting layers, but replace the demo shell, asset assumptions, and voice-service integration with HyperTwist-owned surfaces.",repurpose,moderate modification,Determine whether TalkingHead should remain the primary embodied coach donor and which runtime seams should stay bounded.,"avatar runtime, lip-sync queueing, streamed speech, subtitle timing, avatarOnly embedding, retargeting","Inspect modules, examples, tests, site config, streaming demos, retargeter, and playback worklet code. Look for embodied-coach embedding, lip-sync, subtitle timing, gesture and expression surfaces, and asset assumptions.",Inspect talkinghead runtime; speech queueing and streaming; viseme and blendshape flow; avatarOnly embedding; retargeting; and audio worklet behavior.,"Repurpose selected subsystems rather than the whole product. Mine the repo for embodied coach avatar runtime, lip-sync and subtitle timing, avatar-only embedding, retargeting, and streamed speech playback; keep what shortens build time, but rebind assets, voice services, and UI shell to the HyperTwist architecture.",,Repurpose here means: turn it into a browser-side embodied coach or companion layer.,,,,,,,,,,,,"Upgrade if source reveals unusually reusable browser-runtime seams, clean adapter boundaries, robust tests, and direct leverage for HyperTwist companion surfaces.","Demote if retained value is mostly commodity glue, tightly bound to upstream shell assumptions, or clearly dominated by stronger neighboring repos in the same lane.",Capability inventory + salvage targets + donor-tier verdict,1) Confirmed source-backed browser/XR capabilities; 2) Best retained modules; 3) Boundaries to keep outside HyperTwist core; 4) Recommended pairing or dependency posture; 5) Risks or licensing notes.,Primary: HT_browser_surface cluster packet plus the repo-specific Markdown dossier. Optional: companion browser/XR rows in the same cluster.,"met4citizen/TalkingHead is placed in Donor Bench for HyperTwist because it provides embodied coach UI, streaming lip-sync, retargeting, and avatar-only embedding behavior. Recommended action remains repurpose, but the retained value is a bounded browser coach surface rather than a general avatar product.","Useful subsystem donor for HyperTwist, primarily in the browser companion layer; strongest embodied coach and avatar presentation donor in the current stack.","Audit met4citizen/TalkingHead as a browser embodied-coach candidate for HyperTwist. Inspect the avatar runtime, streaming lip-sync, subtitle timing, avatarOnly embedding, retargeting, and audio worklet behavior. Decide which seams can be used directly and which must remain bounded behind the HyperTwist coaching shell.",HT_browser_surface_0001,HT_browser_surface,met4citizen/talkinghead,,,,,,,,MIT,known_from_reference_material,uploaded_reference_docs,,,,,,,,,,,v6_unified_source_of_truth_pack,,,,permissive_or_noncopyleft_known,direct_incorporation_ok,The code license is MIT and direct use is allowed. Treat it as a bounded browser-side donor for embodied coach presentation rather than as a product shell.,"Use directly as a bounded browser-side dependency or adapter layer; keep voice services, product logic, and asset provenance outside the upstream shell.","Typically preserve notices, attribution, and license text where required; review sample avatars or media separately from the code license.",Usually unnecessary unless you later replace a narrow upstream layer for product-shaping reasons.,high,standard-notice-review,yes,,,,,,,,,,,,,v6.3_markdown_backfill,Backfilled from canonized Markdown dossier pass on 2026-04-24.,implemented_live_permissive,landed_permissive_preserve,"Phase 3R-E closed. Preserve as the landed first-party embodied companion, narration, lip-sync, gesture, subtitle, and avatar-embed lane; start future widening from the live-lane audit, then the 3R-E implementation packet, then REPO_LICENSE_TRACKING.md."
|
||||
apache/echarts,https://github.com/apache/echarts,HyperTwist,Donor Bench,Browser analytics and reporting surface,P2,,,,,,medium,"Retain the reusable chart runtime and reporting patterns, but keep HyperTwist domain schemas, page shell, and training logic outside the upstream system.",repurpose,moderate modification,Determine whether echarts should remain the primary browser analytics and reporting donor for HyperTwist companion surfaces.,"option manager, datastore, zoom and history, thumbnail and export, SSR, chart modularity","Inspect manifests, README/docs, src core, model, data, component, export, and SSR folders. Look for modular chart runtime, data-store abstractions, export surfaces, and reporting-specific UI behavior.","Inspect OptionManager, DataStore, zoom and history behavior, thumbnail and export features, SSR and hydration seams, and accessibility surface.","Repurpose selected subsystems rather than the whole product. Mine the repo for chart runtime, option and data-store patterns, export and save-as-image behavior, zoom and history handling, and SSR reporting surfaces; keep what shortens build time, but rebind analytics schemas and application shell to the HyperTwist architecture.",,"Repurpose here means: turn it into a bounded browser analytics and reporting layer for dashboards, replay summaries, and coaching views.",,,,,,,,,,,,"Upgrade if source reveals unusually reusable browser-runtime seams, clean adapter boundaries, robust tests, and direct leverage for HyperTwist companion surfaces.","Demote if retained value is mostly commodity glue, tightly bound to upstream shell assumptions, or clearly dominated by stronger neighboring repos in the same lane.",Capability inventory + salvage targets + donor-tier verdict,1) Confirmed source-backed browser/XR capabilities; 2) Best retained modules; 3) Boundaries to keep outside HyperTwist core; 4) Recommended pairing or dependency posture; 5) Risks or licensing notes.,Primary: HT_browser_surface cluster packet plus the repo-specific Markdown dossier. Optional: companion browser/XR rows in the same cluster.,"apache/echarts is placed in Donor Bench for HyperTwist because it provides the strongest current browser analytics and reporting stack with SSR, export, and serious data-store behavior. Recommended action remains repurpose, but the retained value is bounded reporting and coaching analytics rather than a product shell.","Useful subsystem donor for HyperTwist, primarily in the browser companion layer; strongest current analytics and reporting donor in the browser stack.","Audit apache/echarts as a browser analytics and reporting candidate for HyperTwist. Inspect the modular chart runtime, OptionManager and DataStore, export surfaces, zoom and history behavior, SSR path, and accessibility seams. Decide which parts should remain direct dependencies versus concept-only references.",HT_browser_surface_0002,HT_browser_surface,apache/echarts,,,,,,,,Apache-2.0,known_from_reference_material,uploaded_reference_docs,,,,,,,,,,,v6_unified_source_of_truth_pack,,,,permissive_or_noncopyleft_known,direct_incorporation_ok,The code license is Apache-2.0 and direct use is allowed. Treat it as a bounded reporting and analytics donor.,Use directly as a bounded browser analytics dependency; keep HyperTwist data contracts and product logic outside the upstream shell.,Preserve LICENSE and NOTICE materials where required and review redistributed assets separately from the code license.,Usually unnecessary unless you later replace a narrow upstream layer for product-shaping reasons.,high,notice-file-review,yes,,,,,,,,,,,,,v6.3_markdown_backfill,Backfilled from canonized Markdown dossier pass on 2026-04-24.,implemented_live_permissive,landed_permissive_preserve,"Phase 3R-C closed. Preserve as the landed first-party analytics, reporting, export, and progress-visualization lane; start future widening from the live-lane audit, then the 3R-C implementation packet, then REPO_LICENSE_TRACKING.md."
|
||||
ecomfe/echarts-gl,https://github.com/ecomfe/echarts-gl,HyperTwist,Merge Bench,Browser 3D analytics and explainer surface,P3,,,,,,medium,"Retain selective 3D analytics surfaces, but keep HyperTwist domain models, scene ownership, and broader product shell outside the upstream package.",integrate,moderate modification,Determine whether echarts-gl should remain the bounded 3D analytics extension beneath echarts and what should stay outside HyperTwist core.,"3D chart exports, GL layer mounting, graph and flow surfaces, view helper behavior, interaction model","Inspect manifests, README/docs, src chart and component exports, GL helper modules, and integration points with echarts and zrender.","Inspect 3D and GL chart exports, GL layer mounting, graph and flow surfaces, view helper behavior, and chart-space interaction handling.","Integrate selected subsystems rather than the whole product. Mine the repo for 3D analytics and explainer surfaces, GL layer mounting, and view helper behavior; keep what shortens build time, but bind it to HyperTwist analytics schemas and browser companion UI.",,Integrate here means: merge bounded 3D analytics and explainer surfaces into the browser reporting stack.,,,,,,,,,,,,"Upgrade if source reveals unusually reusable browser-runtime seams, clean adapter boundaries, robust tests, and direct leverage for HyperTwist companion surfaces.","Demote if retained value is mostly commodity glue, tightly bound to upstream shell assumptions, or clearly dominated by stronger neighboring repos in the same lane.",Capability inventory + salvage targets + donor-tier verdict,1) Confirmed source-backed browser/XR capabilities; 2) Best retained modules; 3) Boundaries to keep outside HyperTwist core; 4) Recommended pairing or dependency posture; 5) Risks or licensing notes.,Primary: HT_browser_surface cluster packet plus the repo-specific Markdown dossier. Optional: companion browser/XR rows in the same cluster.,"ecomfe/echarts-gl is placed in Merge Bench for HyperTwist because it adds bounded 3D analytics and explainer value on top of echarts. Recommended action remains integrate, but the retained value is selective 3D reporting and graph surface behavior rather than a product runtime.","Useful merge candidate for HyperTwist, primarily in the browser companion layer; strongest value sits in 3D chart and GL explainer surfaces beneath the echarts lane.","Audit ecomfe/echarts-gl as a browser 3D analytics companion to apache/echarts. Inspect the 3D chart exports, GL view handling, and interaction seams. Decide which pieces deserve direct dependency use versus conceptual guidance only.",HT_browser_surface_0003,HT_browser_surface,ecomfe/echarts-gl,,,,,,,,BSD-3-Clause,known_from_reference_material,uploaded_reference_docs,,,,,,,,,,,v6_unified_source_of_truth_pack,,,,permissive_or_noncopyleft_known,direct_incorporation_ok,The code license is BSD-3-Clause and direct use is allowed. Treat it as a bounded 3D analytics extension rather than a runtime foundation.,Use directly as a bounded browser-side dependency beneath the reporting stack; keep HyperTwist scene ownership and product logic outside the upstream shell.,"Typically preserve notices, attribution, and license text where required.",Usually unnecessary unless you later replace a narrow upstream layer for product-shaping reasons.,high,standard-notice-review,yes,,,,,,,,,,,,,v6.3_markdown_backfill,Backfilled from canonized Markdown dossier pass on 2026-04-24.,selected_not_live_permissive_candidate,phase0r_permissive_eval_then_implement,"Phase 3R-C closed for the anchor. Retain as an optional subordinate 3D analytics and explainer sidecar beneath the landed apache/echarts lane; do not treat it as separately live."
|
||||
KhronosGroup/glTF-Sample-Viewer,https://github.com/KhronosGroup/glTF-Sample-Viewer,HyperTwist,Donor Bench,Browser asset validation and viewer surface,P3,,,,,,medium,"Retain the useful asset-validation and viewer surfaces, but keep HyperTwist asset flows, editor shell, and product logic outside the upstream viewer.",repurpose,moderate modification,Determine whether glTF-Sample-Viewer should remain the primary standards-validation viewer donor for browser asset tooling.,"validator integration, material variants, environment controls, capture flow, renderer handoff, viewer shell","Inspect manifests, README/docs, src main and UI logic, bundled renderer submodule, and validation-related surfaces.","Inspect validator integration, material-variant support, environment and tone-mapping controls, capture behavior, and the relationship to glTF-Sample-Renderer.","Repurpose selected subsystems rather than the whole product. Mine the repo for standards-aware asset preview, validation, capture, environment control, and viewer-shell behavior; keep what shortens build time, but bind it to HyperTwist asset tooling and browser companion surfaces.",,Repurpose here means: turn it into a bounded asset-validation and preview donor for browser tooling.,,,,,,,,,,,,"Upgrade if source reveals unusually reusable browser-runtime seams, clean adapter boundaries, robust tests, and direct leverage for HyperTwist companion surfaces.","Demote if retained value is mostly commodity glue, tightly bound to upstream shell assumptions, or clearly dominated by stronger neighboring repos in the same lane.",Capability inventory + salvage targets + donor-tier verdict,1) Confirmed source-backed browser/XR capabilities; 2) Best retained modules; 3) Boundaries to keep outside HyperTwist core; 4) Recommended pairing or dependency posture; 5) Risks or licensing notes.,Primary: HT_browser_surface cluster packet plus the repo-specific Markdown dossier. Optional: companion browser/XR rows in the same cluster.,"KhronosGroup/glTF-Sample-Viewer is placed in Donor Bench for HyperTwist because it provides standards-aware asset validation, inspection, and viewer behavior. Recommended action remains repurpose, but the retained value is bounded asset QA and preview tooling rather than gameplay or runtime ownership.","Useful subsystem donor for HyperTwist, primarily in the browser companion layer; strongest value sits in official glTF standards validation and inspection tooling.","Audit KhronosGroup/glTF-Sample-Viewer as a browser asset-validation and inspection candidate for HyperTwist. Inspect validator integration, capture flow, material variants, environment controls, and the renderer handoff. Decide which surfaces deserve direct use or selective extraction.",HT_browser_surface_0004,HT_browser_surface,khronosgroup/gltf-sample-viewer,,,,,,,,Apache-2.0,known_from_reference_material,uploaded_reference_docs,,,,,,,,,,,v6_unified_source_of_truth_pack,,,,permissive_or_noncopyleft_known,direct_incorporation_ok,The code license is Apache-2.0 and direct use is allowed. Treat it as a bounded standards-viewer and asset-QA donor.,Use directly as a bounded asset-validation dependency or sidecar; keep HyperTwist asset workflows and product logic outside the upstream viewer shell.,Preserve LICENSE and NOTICE materials where required.,Usually unnecessary unless you later replace a narrow upstream layer for product-shaping reasons.,high,notice-file-review,yes,,,,,,,,,,,,,v6.3_markdown_backfill,Backfilled from canonized Markdown dossier pass on 2026-04-24.,selected_not_live_permissive_candidate,phase0r_permissive_eval_then_implement,"Phase 3R-D closed for the anchor. Retain as the subordinate standards-aware asset QA and validation sidecar beneath the landed google/model-viewer lane; do not treat it as separately live."
|
||||
|
|
|
|||
|
|
|
@ -75,8 +75,8 @@ For any HyperTwist repo, the coding model must determine:
|
|||
For HyperTwist, keep this explicit:
|
||||
|
||||
- current shallow-eval set: `71` repos
|
||||
- currently verified live/implemented in checked Unreal surfaces: `7`
|
||||
- permissive live lanes: `6`
|
||||
- currently verified live/implemented in checked Unreal surfaces: `11`
|
||||
- permissive live lanes: `10`
|
||||
- restrictive live lane: `1`
|
||||
- the restrictive landed lane is `onionhoney/roux-trainers`, and it is to be treated as properly clean-roomed and then implemented
|
||||
|
||||
|
|
@ -96,5 +96,5 @@ into:
|
|||
Before recommending new HyperTwist donor-shaped widening from the remaining `61` current non-live rows:
|
||||
|
||||
- do not reopen the already closed `Phase 0R`, `Phase 1R`, or `Phase 2R` packets
|
||||
- preserve the ten landed rows as current truth
|
||||
- continue from the closed packet sequence, currently `Phase 3R-E`
|
||||
- preserve the eleven landed rows as current truth
|
||||
- continue from the closed packet sequence, currently `Phase 3R-F`
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ Do not reopen broad donor-driven widening as if the whole retained portfolio wer
|
|||
|
||||
Current truth:
|
||||
|
||||
- `10` repos are currently verified live in checked Unreal surfaces
|
||||
- `9` are permissive `MIT` or `Apache-2.0`
|
||||
- `11` repos are currently verified live in checked Unreal surfaces
|
||||
- `10` are permissive `MIT` or `Apache-2.0`
|
||||
- `1` is the restrictive `onionhoney/roux-trainers` lane that is already properly clean-roomed and implemented
|
||||
- `Phase 0R` is now closed for the remaining `61` non-live rows
|
||||
- `Phase 1R` is now closed as the retained-set contract and handoff overhaul
|
||||
|
|
@ -25,13 +25,14 @@ Current truth:
|
|||
- `Phase 3R-B` is now closed as the landed `Hypercubers/hypercubing.xyz` widening packet
|
||||
- `Phase 3R-C` is now closed as the landed `apache/echarts` widening packet
|
||||
- `Phase 3R-D` is now closed as the landed `google/model-viewer` widening packet
|
||||
- `Phase 3R-E` is now closed as the landed `met4citizen/TalkingHead` widening packet
|
||||
|
||||
Next sequence:
|
||||
|
||||
1. preserve the ten landed lanes
|
||||
1. preserve the eleven landed lanes
|
||||
2. use the retained-set contract as the only legal/roadmap routing surface for non-live rows
|
||||
3. keep `Aarav2709/KubeTimr`, `Hypercubers/hypercubing.xyz`, `apache/echarts`, and `google/model-viewer` on preserve-and-enhance footing through their landed packets
|
||||
4. continue broader permissive widening from `Phase 3R-E`
|
||||
3. keep `Aarav2709/KubeTimr`, `Hypercubers/hypercubing.xyz`, `apache/echarts`, `google/model-viewer`, and `met4citizen/TalkingHead` on preserve-and-enhance footing through their landed packets
|
||||
4. continue broader permissive widening from `Phase 3R-F`
|
||||
|
||||
## Suggested repo structure
|
||||
|
||||
|
|
|
|||
|
|
@ -42,18 +42,20 @@ They still must point back to `C:\HyperTwist\docs\REPO_LICENSE_TRACKING.md` for
|
|||
At the moment, HyperTwist should be described this way:
|
||||
|
||||
- current curated shallow-eval set: `71` repos
|
||||
- currently verified live/implemented in checked Unreal surfaces: `9`
|
||||
- permissive live lanes: `8`
|
||||
- currently verified live/implemented in checked Unreal surfaces: `11`
|
||||
- permissive live lanes: `10`
|
||||
- restrictive live lanes: `1`
|
||||
|
||||
The eight permissive live lanes are:
|
||||
The ten permissive live lanes are:
|
||||
|
||||
- `Aarav2709/KubeTimr`
|
||||
- `apache/echarts`
|
||||
- `abunickabhi/5style-Trainer`
|
||||
- `google/model-viewer`
|
||||
- `Hypercubers/hypercubing.xyz`
|
||||
- `tao-yu/Alg-Trainer`
|
||||
- `Lykos/cube_trainer`
|
||||
- `met4citizen/TalkingHead`
|
||||
- `poliva/cubedex`
|
||||
- `newyork-anthonyng/rubiks-cross-trainer`
|
||||
|
||||
|
|
@ -114,7 +116,7 @@ Current practical interpretation:
|
|||
- `Phase 2R-B` is now fully closed for the primary retained permissive support-plane rows in scope
|
||||
- `Phase 2R-C` is now fully closed for the final residual `0R-B` permissive rows
|
||||
- `Phase 2R` is now fully closed for the retained permissive set
|
||||
- the ten already-live rows now have source-backed preservation authority in `C:\HyperTwist\docs\HYPERTWIST_LIVE_LANES_SOURCE_AND_PRESERVATION_AUDIT_2026-05-13.md`
|
||||
- the eleven already-live rows now have source-backed preservation authority in `C:\HyperTwist\docs\HYPERTWIST_LIVE_LANES_SOURCE_AND_PRESERVATION_AUDIT_2026-05-13.md`
|
||||
- the retained-set contract now lives in `C:\HyperTwist\docs\HYPERTWIST_PHASE_1R_RETAINED_SET_CONTRACT_AND_HANDOFF_2026-05-13.md`
|
||||
- the core ownership and acceptance packet now lives in `C:\HyperTwist\docs\HYPERTWIST_PHASE_2R_PACKET_2R_A_OWNERSHIP_AND_ACCEPTANCE_CONTRACT_2026-05-13.md`
|
||||
- the support-plane ownership and acceptance packet now lives in `C:\HyperTwist\docs\HYPERTWIST_PHASE_2R_PACKET_2R_B_OWNERSHIP_AND_ACCEPTANCE_CONTRACT_2026-05-13.md`
|
||||
|
|
@ -123,7 +125,8 @@ Current practical interpretation:
|
|||
- the landed `Hypercubers/hypercubing.xyz` widening packet now lives in `C:\HyperTwist\docs\HYPERTWIST_PHASE_3R_PACKET_3R_B_HYPERCUBING_XYZ_IMPLEMENTATION_2026-05-13.md`
|
||||
- the landed `apache/echarts` widening packet now lives in `C:\HyperTwist\docs\HYPERTWIST_PHASE_3R_PACKET_3R_C_ECHARTS_IMPLEMENTATION_2026-05-13.md`
|
||||
- the landed `google/model-viewer` widening packet now lives in `C:\HyperTwist\docs\HYPERTWIST_PHASE_3R_PACKET_3R_D_MODEL_VIEWER_IMPLEMENTATION_2026-05-13.md`
|
||||
- the next bounded move is `Phase 3R-E`
|
||||
- the landed `met4citizen/TalkingHead` widening packet now lives in `C:\HyperTwist\docs\HYPERTWIST_PHASE_3R_PACKET_3R_E_TALKINGHEAD_IMPLEMENTATION_2026-05-13.md`
|
||||
- the next bounded move is `Phase 3R-F`
|
||||
|
||||
Read together with:
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
Before widening new HyperTwist donor-driven implementation beyond the already landed lanes, preserve this current truth:
|
||||
|
||||
- current shallow-eval set: `71` repos
|
||||
- currently verified live/implemented in checked Unreal surfaces: `10`
|
||||
- permissive live lanes: `9`
|
||||
- currently verified live/implemented in checked Unreal surfaces: `11`
|
||||
- permissive live lanes: `10`
|
||||
- restrictive live lane: `1`
|
||||
- the restrictive landed lane is `onionhoney/roux-trainers`, and it is to be treated as properly clean-roomed and then implemented
|
||||
- `Phase 0R` is now closed for the remaining `61` non-live rows
|
||||
|
|
@ -16,15 +16,16 @@ Before widening new HyperTwist donor-driven implementation beyond the already la
|
|||
- `Phase 3R-B` is now closed as the landed `Hypercubers/hypercubing.xyz` knowledge and community-reference widening packet
|
||||
- `Phase 3R-C` is now closed as the landed `apache/echarts` analytics and reporting widening packet
|
||||
- `Phase 3R-D` is now closed as the landed `google/model-viewer` browser presentation, compact editor, and standards-aware asset-QA widening packet
|
||||
- `Phase 3R-E` is now closed as the landed `met4citizen/TalkingHead` embodied companion, narration, lip-sync, gesture, subtitle, and avatar-embed widening packet
|
||||
|
||||
Current routing truth:
|
||||
|
||||
- retained rows total: `68`
|
||||
- discarded from the active retained set: `3`
|
||||
- active non-live implementation-board rows: `49`
|
||||
- active non-live implementation-board rows: `48`
|
||||
- retained benchmark, oracle, or clean-room-later rows outside the active implementation board: `9`
|
||||
|
||||
The next bounded move is `Phase 3R-E`, not renewed donor evaluation or pre-packet ratification.
|
||||
The next bounded move is `Phase 3R-F`, not renewed donor evaluation or pre-packet ratification.
|
||||
|
||||
## Reset phases
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue