docs: task4 notes
This commit is contained in:
parent
4a52963fc5
commit
77399a1a8f
@ -1,5 +1,12 @@
|
|||||||
## Product Lens
|
## Product Lens
|
||||||
- Is this pattern useful for real customers? Yes / Partial / No
|
- Is this pattern useful for real customers? Yes
|
||||||
- What kind of customer use case does this support?
|
- What kind of customer use case does this support?
|
||||||
|
- Product assemblies where parts move together while keeping relative spacing.
|
||||||
|
- Educational and explainer scenes showing hierarchy and inheritance.
|
||||||
|
- Motion design layouts where one parent motion drives a cluster of elements.
|
||||||
- Does Thob feel strong enough for this use case?
|
- Does Thob feel strong enough for this use case?
|
||||||
|
- Partial. The mesh-inside-mesh pattern works for parent-child inheritance, but Perspective Camera rotation seems broken because objects disappear no matter which rotation axis is used.
|
||||||
- What would improve the experience?
|
- What would improve the experience?
|
||||||
|
- Fix Perspective Camera component rotation so scene objects do not disappear during camera rotation.
|
||||||
|
- Add reusable presets for common parent-child motion examples.
|
||||||
|
- Provide clearer step-state visualization for guided camera plus transform sequences.
|
||||||
@ -1,60 +1,95 @@
|
|||||||
# Task: [Feature Name]
|
# Task: Parent Group Motion with Child Offset Inheritance
|
||||||
|
|
||||||
## Objective
|
## Objective
|
||||||
What is the feature trying to do?
|
Build a step-based scene where a parent group is translated and rotated, while child meshes inherit those transforms and keep their relative spacing.
|
||||||
|
|
||||||
## Vanilla three.js
|
## Vanilla three.js
|
||||||
-Possible: Yes / Partial / No
|
-Possible: Yes
|
||||||
-Notes:
|
-Notes:
|
||||||
|
- Uses a parent group containing three child meshes.
|
||||||
|
- Step data controls camera position, look target, group position, group rotation, and spin speed.
|
||||||
|
- Animation loop lerps toward target transforms for smooth guided transitions.
|
||||||
-Key concepts:
|
-Key concepts:
|
||||||
-Complexity: Easy / Medium / Hard
|
- Group hierarchy and transform inheritance
|
||||||
|
- Step-driven state config
|
||||||
|
- Camera and group interpolation
|
||||||
|
- Maintaining child local offsets under parent motion
|
||||||
|
-Complexity: Medium
|
||||||
|
|
||||||
## R3F
|
## R3F
|
||||||
-Possible: Yes / Partial / No
|
-Possible: Yes
|
||||||
-Notes:
|
-Notes:
|
||||||
|
- Uses a group with child meshes in declarative JSX.
|
||||||
|
- Step index in React state drives camera and parent group targets.
|
||||||
|
- useFrame performs smooth interpolation and optional spin per step.
|
||||||
-What R3F abstracted:
|
-What R3F abstracted:
|
||||||
-Complexity: Easy / Medium / Hard
|
- Render-loop integration through hooks
|
||||||
|
- Scene graph composition with nested components
|
||||||
|
- State-driven UI to scene updates
|
||||||
|
-Complexity: Medium
|
||||||
|
|
||||||
## Thob Page Builder
|
## Thob Page Builder
|
||||||
-Possible: Yes / Partial / No
|
-Possible: Partial
|
||||||
-Notes:
|
-Notes:
|
||||||
|
- We can make things like this by following the simple mesh-inside-mesh design.
|
||||||
|
- Rotate the parent object, and children inherit the rotation and move with the parent while maintaining offset distance.
|
||||||
|
- This matches the same parent-child transform behavior used in vanilla and R3F.
|
||||||
|
- Perspective Camera component rotation feature appears broken right now: no matter how much camera rotation is changed on any axis, objects disappear.
|
||||||
-Builder steps:
|
-Builder steps:
|
||||||
-Complexity: Easy / Medium / Hard
|
- Create a parent mesh/group container.
|
||||||
|
- Place child meshes inside it with different local positions.
|
||||||
|
- Animate or rotate only the parent transform to drive combined motion.
|
||||||
|
- Add camera positions per step if needed for guided presentation, but avoid camera rotation controls until this issue is fixed.
|
||||||
|
-Complexity: Easy
|
||||||
|
|
||||||
## Comparison Summary
|
## Comparison Summary
|
||||||
-Possible in all 3? Yes / Partial / No
|
-Possible in all 3? Partial
|
||||||
-Main differences:
|
-Main differences:
|
||||||
|
- Vanilla is explicit and manual for hierarchy and animation wiring.
|
||||||
|
- R3F keeps hierarchy readable and state-driven.
|
||||||
|
- Thob can represent the same hierarchy visually with low setup effort, but camera rotation behavior blocks full parity.
|
||||||
-Where Thob is better:
|
-Where Thob is better:
|
||||||
|
- Fast scene assembly for parent-child structures.
|
||||||
|
- Easier visual understanding of nested transforms.
|
||||||
-Where Thob is weaker:
|
-Where Thob is weaker:
|
||||||
|
- Perspective Camera rotation currently causes objects to disappear.
|
||||||
|
- Fine-grained transition logic can still need extra workflow clarity.
|
||||||
-What feels awkward or unclear:
|
-What feels awkward or unclear:
|
||||||
|
- Managing more advanced multi-step timing and orchestration can become less obvious than code-first flow.
|
||||||
|
- Camera rotation controls are not reliable due to object disappearance.
|
||||||
|
|
||||||
## Limitation Type (if any)
|
## Limitation Type (if any)
|
||||||
-[ ] Editor UX limitation
|
-[ ] Editor UX limitation
|
||||||
-[ ] Runtime limitation
|
-[x] Runtime limitation
|
||||||
-[ ] Schema / data model limitation
|
-[ ] Schema / data model limitation
|
||||||
-[ ] Component limitation
|
-[ ] Component limitation
|
||||||
-[ ] Event system limitation
|
-[ ] Event system limitation
|
||||||
-[ ] Asset pipeline limitation
|
-[ ] Asset pipeline limitation
|
||||||
-[ ] Unknown / needs investigation
|
-[x] Unknown / needs investigation
|
||||||
|
|
||||||
## Workaround
|
## Workaround
|
||||||
-Is there a workaround?
|
-Is there a workaround?
|
||||||
|
- Partial workaround.
|
||||||
-If yes, what is it?
|
-If yes, what is it?
|
||||||
|
- Keep parent/child group rotation for the main motion behavior.
|
||||||
|
- Avoid rotating the Perspective Camera component for now.
|
||||||
|
- Use camera position changes and look target adjustments instead of direct camera rotation.
|
||||||
|
|
||||||
## Suggested Improvement
|
## Suggested Improvement
|
||||||
-What should improve in Thob?
|
-What should improve in Thob?
|
||||||
|
- Fix Perspective Camera component rotation behavior so objects do not disappear when rotating on any axis.
|
||||||
|
- Optional guided presets for common parent-child motion patterns.
|
||||||
|
- Better timeline/state visualization for multi-step camera + transform storytelling.
|
||||||
-Is it:
|
-Is it:
|
||||||
- editor
|
- editor
|
||||||
- runtime
|
- runtime
|
||||||
-component
|
|
||||||
- UX
|
- UX
|
||||||
-schema/data
|
|
||||||
|
|
||||||
## Difficulty Estimate
|
## Difficulty Estimate
|
||||||
-Easy / Medium / Hard
|
-Medium
|
||||||
|
|
||||||
## Business Value
|
## Business Value
|
||||||
-Low / Medium / High
|
-High
|
||||||
|
|
||||||
## Recommendation
|
## Recommendation
|
||||||
Should Thob support this better? Why?
|
Yes, Thob should support this strongly because parent-child transform inheritance is foundational for many real scenes, from product showcases to motion compositions. Priority should include fixing Perspective Camera rotation reliability first.
|
||||||
@ -1,73 +1,67 @@
|
|||||||
# Builder Notes (Thob) — Task 4: Basic Rotation / Motion
|
# Builder Notes (Thob) — Task 4: Parent-Child Group Motion
|
||||||
|
|
||||||
## Thob Observations from Task Notes
|
## Thob Observations from Task Notes
|
||||||
|
|
||||||
- **Possible:** Partial
|
- **Possible:** Partial
|
||||||
- **Implementation used:** Applied available built-in animation presets on a cube/object inside thob builder.
|
- **Implementation used:** Mesh-inside-mesh (parent with children offsets), parent rotation/motion, and Perspective Camera setup.
|
||||||
- **What worked as expected:**
|
- **What worked as expected:**
|
||||||
- Preset animation can be applied quickly.
|
- Parent-child hierarchy setup is straightforward.
|
||||||
- Basic motion effects are visible without writing code.
|
- Rotating the parent makes children inherit rotation while keeping offset distance.
|
||||||
|
- Basic grouped motion behavior is achievable visually.
|
||||||
- **Main limitation observed:**
|
- **Main limitation observed:**
|
||||||
- Custom animation is not possible; only pre-provided animation can be applied.
|
- Perspective Camera rotation appears unreliable: objects disappear regardless of rotation axis changes.
|
||||||
- Exact motion parity with Vanilla/R3F frame-loop logic is not achievable from the builder controls.
|
- Because camera rotation is unstable, full parity with the planned step-guided camera behavior is blocked.
|
||||||
|
- Multi-step orchestration remains harder to validate when preview state is unstable.
|
||||||
- **Builder flow used:**
|
- **Builder flow used:**
|
||||||
1. Create/Add cube object in scene.
|
1. Create parent mesh/group container.
|
||||||
2. Open animation controls.
|
2. Add child meshes with local offsets.
|
||||||
3. Apply available preset animation.
|
3. Rotate/move parent to verify inheritance.
|
||||||
4. Tune exposed preset options (for example speed/intensity where available).
|
4. Configure Perspective Camera and test camera orientation adjustments.
|
||||||
- **Complexity:** Easy for preset motion, hard for custom motion requirements.
|
5. Validate whether grouped motion plus camera framing can be repeated reliably.
|
||||||
- **Main limitation signals:** Editor UX + Runtime + Component concerns.
|
- **Complexity:** Easy for hierarchy behavior, Medium for complete camera-guided flow due runtime issues.
|
||||||
- **Workaround status:** Partial workaround only (use nearest preset); no true custom per-frame animation authoring.
|
- **Main limitation signals:** Runtime + Editor UX + Unknown investigation needed.
|
||||||
|
- **Workaround status:** Partial workaround only (keep parent-driven motion, avoid direct camera rotation, prefer camera position/look target adjustments).
|
||||||
|
|
||||||
## Console Warnings/Errors Seen (Deduplicated) and Probable Meaning
|
## Console Warnings/Errors Seen (Deduplicated) and Probable Meaning
|
||||||
|
|
||||||
### warn: `Permissions-Policy header unrecognized feature ('browsing-topics')`
|
### warn: `Permissions-Policy header: Unrecognized feature: 'browsing-topics'`
|
||||||
- **Type:** Browser/header compatibility warning.
|
- **Type:** Browser/header compatibility warning.
|
||||||
- **Probable meaning:** Response header includes a policy directive not recognized by the current browser engine.
|
- **Probable meaning:** Response includes a policy directive unsupported by current browser/runtime.
|
||||||
- **Impact:** Usually low for scene editing itself; mostly platform/header noise.
|
- **Impact:** Usually low for core feature behavior; mainly environment-level noise.
|
||||||
|
|
||||||
### error: `GET https://builder.thob.studio/builder/<id> 404 (Not Found)`
|
### error: `GET https://builder.thob.studio/builder/<id> 404 (Not Found)`
|
||||||
- **Type:** Network/resource error.
|
- **Type:** Network/resource error.
|
||||||
- **Probable meaning:** Builder page/resource ID is stale, deleted, or inaccessible for current session.
|
- **Probable meaning:** Builder project/resource URL is stale, missing, or inaccessible in the current session.
|
||||||
- **Impact:** High for workflow continuity; can block loading expected builder state.
|
- **Impact:** High for workflow continuity; can interrupt loading and testing stability.
|
||||||
|
|
||||||
### warn: `Unchecked runtime.lastError: The message port closed before a response was received`
|
### warn: `Unchecked runtime.lastError: The message port closed before a response was received`
|
||||||
- **Type:** Browser extension/runtime messaging warning.
|
- **Type:** Browser runtime/extension messaging warning.
|
||||||
- **Probable meaning:** A background messaging channel closed before callback response (often extension-related).
|
- **Probable meaning:** Background/bridge message channel closed before callback completion.
|
||||||
- **Impact:** Usually low for core scene logic; can add debugging noise.
|
- **Impact:** Usually non-fatal for scene logic, but adds debugging noise.
|
||||||
|
|
||||||
### warn: `No HydrateFallback element provided to render during initial hydration`
|
### warn: `No HydrateFallback element provided to render during initial hydration`
|
||||||
- **Type:** Hydration/lifecycle warning.
|
- **Type:** Hydration/lifecycle warning.
|
||||||
- **Probable meaning:** Initial hydration path expected a fallback UI element but none was configured.
|
- **Probable meaning:** Hydration path expects a fallback UI but none is configured.
|
||||||
- **Impact:** Can produce unstable initial editor/preview rendering behavior.
|
- **Impact:** Can cause unstable initial render state in editor/preview panels.
|
||||||
|
|
||||||
### warn: `... changing from uncontrolled to controlled` and `RadioGroup is changing from uncontrolled to controlled`
|
### warn: `Found both blacklist and siteRules — using siteRules`
|
||||||
|
- **Type:** Configuration precedence warning.
|
||||||
|
- **Probable meaning:** Two rule sources are present, runtime picks one (`siteRules`).
|
||||||
|
- **Impact:** Generally non-blocking, but indicates overlapping configuration surfaces.
|
||||||
|
|
||||||
|
### warn: `undefined is changing from uncontrolled to controlled` and `RadioGroup is changing from uncontrolled to controlled`
|
||||||
- **Type:** React state-management warning.
|
- **Type:** React state-management warning.
|
||||||
- **Probable meaning:** Form/editor controls switch value ownership mode across renders.
|
- **Probable meaning:** Controls mount with undefined/default state and later become controlled.
|
||||||
- **Impact:** Property panel behavior may become inconsistent or glitchy.
|
- **Impact:** Property controls may behave inconsistently, making camera/property tuning harder.
|
||||||
|
|
||||||
### warn: `GetBindingData<id> method already registered` (repeated)
|
### warn: `GetBindingData<id> method already registered` (repeated)
|
||||||
- **Type:** Duplicate registration warning.
|
- **Type:** Duplicate registration warning.
|
||||||
- **Probable meaning:** Binding method handlers are attached multiple times during rerender/remount cycles.
|
- **Probable meaning:** Binding handlers are being registered repeatedly across rerenders/remounts without cleanup.
|
||||||
- **Impact:** High log noise, risk of duplicated side effects, and potential performance degradation.
|
- **Impact:** High log noise and risk of duplicate event executions, especially problematic for interactive scene controls.
|
||||||
|
|
||||||
### warn: `resetPOI method already registered`
|
|
||||||
- **Type:** Duplicate command registration warning.
|
|
||||||
- **Probable meaning:** Command/event handler is registered more than once without cleanup.
|
|
||||||
- **Impact:** Risk of repeated command execution and state drift.
|
|
||||||
|
|
||||||
### warn: `camera-controls: verticalDragToForward was removed...`
|
|
||||||
- **Type:** API deprecation/removed option warning.
|
|
||||||
- **Probable meaning:** Legacy camera-controls prop is still being used by some path in the runtime/editor.
|
|
||||||
- **Impact:** Non-fatal now, but indicates outdated control configuration and future fragility.
|
|
||||||
|
|
||||||
### error: `THREE.GLTFLoader: Invalid plugin found: missing name`
|
|
||||||
- **Type:** Asset loader/plugin configuration error.
|
|
||||||
- **Probable meaning:** GLTF loader plugin object does not satisfy required shape/metadata.
|
|
||||||
- **Impact:** Asset loading behavior may be incomplete or fail for some models.
|
|
||||||
|
|
||||||
## Overall Read
|
## Overall Read
|
||||||
|
|
||||||
- For Task 4, thob supports only preset motion and does not support custom animation logic, which is the core functional gap compared with Vanilla and R3F.
|
- Task 4 core hierarchy behavior works in builder: parent rotation correctly drives child motion with preserved local offsets.
|
||||||
- Console output shows repeated registration and controlled/uncontrolled warnings, which aligns with editor/runtime stability concerns when iterating quickly in builder.
|
- The major blocker is camera reliability: direct Perspective Camera rotation can make objects disappear, reducing feature parity confidence.
|
||||||
- The 404 page load and loader/control warnings suggest platform-level reliability and compatibility issues that can interfere with smooth motion-authoring workflows.
|
- Repeated binding-registration and controlled/uncontrolled warnings suggest editor/runtime instability that can amplify interaction and camera issues.
|
||||||
|
- Product priority for this task should focus on camera rotation reliability first, then interaction-state stability for repeatable multi-step scene authoring.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user