Skip to content

Add 3d mockup#521

Closed
NabilRFG12 wants to merge 3 commits into
webadderallorg:mainfrom
NabilRFG12:add-3d-mockup
Closed

Add 3d mockup#521
NabilRFG12 wants to merge 3 commits into
webadderallorg:mainfrom
NabilRFG12:add-3d-mockup

Conversation

@NabilRFG12
Copy link
Copy Markdown

Pull Request Template

Description

Motivation

Type of Change

  • New Feature
  • Bug Fix
  • Refactor / Code Cleanup
  • Documentation Update
  • Other (please specify)

Related Issue(s)

Screenshots / Video

Screenshot (if applicable):

![Screenshot Description](path/to/screenshot.png)

Video (wherever possible):

<video src="path/to/video.mp4" controls width="600"></video>

Testing Guide

Checklist

  • I have performed a self-review of my code.
  • I have added any necessary screenshots or videos.
  • I have linked related issue(s) and updated the changelog if applicable.

Thank you for contributing!

claude and others added 3 commits May 16, 2026 21:35
Strips all Electron/native/recording code and replaces with a
greenfield 3D mockup animator engine:

- @theatre/core: animation sheet with camera + device objects
- claudeBridge: Anthropic tool-use pipeline (add_camera_keyframe,
  add_device_keyframe, finalize) with multi-turn agentic loop
- useAnimationTimeline: cubic-bezier interpolation + RAF playback
- useVideoUpload: File → VideoTexture + video/timeline time sync
- MockupScene: R3F canvas, CameraRig, DeviceMesh placeholder,
  drei Environment (HDRI), postprocessing (DoF, bloom, vignette)
- exportPipeline: WebCodecs VideoEncoder + mp4-muxer frame capture
- App.tsx: minimal wiring harness — UI shell to be replaced

https://claude.ai/code/session_01MiQq1UEsYAfd1j7hEtJBco
feat: Mockly Studio engine scaffold (3D motion design)
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 16, 2026

Important

Review skipped

Too many files!

This PR contains 294 files, which is 144 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 6b2261b3-7bfc-410f-8d4d-16e6e46512dd

📥 Commits

Reviewing files that changed from the base of the PR and between 6255890 and 2056077.

⛔ Files ignored due to path filters (6)
  • electron/native/bin/win32-x64/cursor-monitor.exe is excluded by !**/*.exe
  • electron/native/bin/win32-x64/recordly-gpu-export.exe is excluded by !**/*.exe
  • electron/native/bin/win32-x64/recordly-nvidia-cuda-compositor.exe is excluded by !**/*.exe
  • electron/native/bin/win32-x64/wgc-capture.exe is excluded by !**/*.exe
  • package-lock.json is excluded by !**/package-lock.json
  • src/features/3d-mockup/screenshots/initial.png is excluded by !**/*.png
📒 Files selected for processing (294)
  • electron-builder.json5
  • electron/appPaths.ts
  • electron/cursorHider.ts
  • electron/electron-env.d.ts
  • electron/extensions/errorUtils.ts
  • electron/extensions/extensionIpc.ts
  • electron/extensions/extensionLoader.ts
  • electron/extensions/extensionMarketplace.ts
  • electron/extensions/extensionTypes.ts
  • electron/gpuSwitches.test.ts
  • electron/gpuSwitches.ts
  • electron/ipc/captions/generate.ts
  • electron/ipc/captions/parser.ts
  • electron/ipc/captions/whisper.ts
  • electron/ipc/constants.ts
  • electron/ipc/cursor/bounds.ts
  • electron/ipc/cursor/interaction.test.ts
  • electron/ipc/cursor/interaction.ts
  • electron/ipc/cursor/monitor.ts
  • electron/ipc/cursor/telemetry.test.ts
  • electron/ipc/cursor/telemetry.ts
  • electron/ipc/export/exportStream.test.ts
  • electron/ipc/export/exportStream.ts
  • electron/ipc/export/native-video.test.ts
  • electron/ipc/export/native-video.ts
  • electron/ipc/ffmpeg/binary.ts
  • electron/ipc/ffmpeg/filters.test.ts
  • electron/ipc/ffmpeg/filters.ts
  • electron/ipc/handlers.ts
  • electron/ipc/nativeVideoExport.test.ts
  • electron/ipc/nativeVideoExport.ts
  • electron/ipc/paths/binaries.test.ts
  • electron/ipc/paths/binaries.ts
  • electron/ipc/project/manager.test.ts
  • electron/ipc/project/manager.ts
  • electron/ipc/project/session.ts
  • electron/ipc/recording/audioFilters.test.ts
  • electron/ipc/recording/audioFilters.ts
  • electron/ipc/recording/diagnostics.test.ts
  • electron/ipc/recording/diagnostics.ts
  • electron/ipc/recording/events.ts
  • electron/ipc/recording/ffmpeg.ts
  • electron/ipc/recording/mac.ts
  • electron/ipc/recording/prune.test.ts
  • electron/ipc/recording/prune.ts
  • electron/ipc/recording/windows.ts
  • electron/ipc/recording/windowsFallbacks.test.ts
  • electron/ipc/recording/windowsFallbacks.ts
  • electron/ipc/register/assets.ts
  • electron/ipc/register/captions.ts
  • electron/ipc/register/export.test.ts
  • electron/ipc/register/export.ts
  • electron/ipc/register/permissions.ts
  • electron/ipc/register/project.ts
  • electron/ipc/register/recording.ts
  • electron/ipc/register/settings.ts
  • electron/ipc/register/sources.ts
  • electron/ipc/state.ts
  • electron/ipc/types.ts
  • electron/ipc/utils.ts
  • electron/ipc/windowsCaptureSelection.test.ts
  • electron/ipc/windowsCaptureSelection.ts
  • electron/main.ts
  • electron/mainCjsNormalize.test.mjs
  • electron/mediaServer.test.ts
  • electron/mediaServer.ts
  • electron/mediaTypes.ts
  • electron/native/NativeCursorMonitor.swift
  • electron/native/ScreenCaptureKitRecorder.swift
  • electron/native/ScreenCaptureKitWindowList.swift
  • electron/native/SystemCursorAssets.swift
  • electron/native/bin/darwin-arm64/openscreen-window-list
  • electron/native/bin/darwin-arm64/recordly-native-cursor-monitor
  • electron/native/bin/darwin-arm64/recordly-screencapturekit-helper
  • electron/native/bin/darwin-arm64/recordly-system-cursors
  • electron/native/bin/darwin-arm64/recordly-window-list
  • electron/native/bin/darwin-arm64/whisper-bench
  • electron/native/bin/darwin-arm64/whisper-cli
  • electron/native/bin/darwin-arm64/whisper-quantize
  • electron/native/bin/darwin-arm64/whisper-runtime.json
  • electron/native/bin/darwin-arm64/whisper-server
  • electron/native/bin/darwin-arm64/whisper-vad-speech-segments
  • electron/native/bin/darwin-x64/recordly-native-cursor-monitor
  • electron/native/bin/darwin-x64/recordly-screencapturekit-helper
  • electron/native/bin/darwin-x64/recordly-system-cursors
  • electron/native/bin/darwin-x64/recordly-window-list
  • electron/native/bin/win32-x64/helpers-manifest.json
  • electron/native/cursor-monitor/CMakeLists.txt
  • electron/native/cursor-monitor/src/main.cpp
  • electron/native/gpu-export-probe/CMakeLists.txt
  • electron/native/gpu-export-probe/src/main.cpp
  • electron/native/nvidia-cuda-compositor/CMakeLists.txt
  • electron/native/nvidia-cuda-compositor/render-tahoe-cursor-atlas.cjs
  • electron/native/nvidia-cuda-compositor/run-mp4-pipeline.mjs
  • electron/native/nvidia-cuda-compositor/src/main.cu
  • electron/native/wgc-capture/CMakeLists.txt
  • electron/native/wgc-capture/src/main.cpp
  • electron/native/wgc-capture/src/mf_encoder.cpp
  • electron/native/wgc-capture/src/mf_encoder.h
  • electron/native/wgc-capture/src/monitor_utils.cpp
  • electron/native/wgc-capture/src/monitor_utils.h
  • electron/native/wgc-capture/src/wasapi_loopback.cpp
  • electron/native/wgc-capture/src/wasapi_loopback.h
  • electron/native/wgc-capture/src/wgc_session.cpp
  • electron/native/wgc-capture/src/wgc_session.h
  • electron/native/windows-capture/CMakeLists.txt
  • electron/native/windows-capture/src/dxgi_session.cpp
  • electron/native/windows-capture/src/dxgi_session.h
  • electron/native/windows-capture/src/main.cpp
  • electron/native/windows-capture/src/mf_encoder.cpp
  • electron/native/windows-capture/src/mf_encoder.h
  • electron/native/windows-capture/src/monitor_utils.cpp
  • electron/native/windows-capture/src/monitor_utils.h
  • electron/native/windows-capture/src/wasapi_loopback.cpp
  • electron/native/windows-capture/src/wasapi_loopback.h
  • electron/preload.ts
  • electron/rendererServer.ts
  • electron/uiohook-napi.d.ts
  • electron/updater.ts
  • electron/windows.ts
  • index.html
  • package.json
  • recordly.rb
  • scripts/benchmark-export-queues.mjs
  • scripts/build-cursor-monitor.mjs
  • scripts/build-native-helpers.mjs
  • scripts/build-nvidia-cuda-compositor.mjs
  • scripts/build-whisper-runtime.mjs
  • scripts/build-windows-capture.mjs
  • scripts/build-windows-gpu-export.mjs
  • scripts/create-release.mjs
  • scripts/i18n-check.mjs
  • scripts/launch-recordly-cuda-auto.ps1
  • scripts/native-helper-manifest.mjs
  • scripts/normalize-electron-main-cjs.mjs
  • scripts/postinstall.mjs
  • scripts/smoke-electron-main-cjs.mjs
  • scripts/smoke-packaged-binaries.mjs
  • scripts/write-release-checksums.mjs
  • src/App.tsx
  • src/components/countdown/CountdownOverlay.tsx
  • src/components/launch/LaunchWindow.module.css
  • src/components/launch/LaunchWindow.tsx
  • src/components/launch/RecordingControls.tsx
  • src/components/launch/SourceSelector.css
  • src/components/launch/SourceSelector.module.css
  • src/components/launch/SourceSelector.tsx
  • src/components/launch/UpdateToastWindow.tsx
  • src/components/launch/contexts/HudInteractionContext.tsx
  • src/components/launch/floatingWebcamPreview.test.ts
  • src/components/launch/floatingWebcamPreview.ts
  • src/components/launch/hooks/useHudBarDrag.ts
  • src/components/launch/hooks/useLaunchHudInteractionState.ts
  • src/components/launch/hooks/useLaunchWindowActions.ts
  • src/components/launch/hooks/useLaunchWindowSystemState.ts
  • src/components/launch/hooks/useRecordingTimer.ts
  • src/components/launch/hooks/useWebcamPreviewOverlay.ts
  • src/components/launch/hudMousePassthrough.test.ts
  • src/components/launch/hudMousePassthrough.ts
  • src/components/launch/launchTheme.css
  • src/components/launch/popovers/CountdownPopover.tsx
  • src/components/launch/popovers/LaunchPopoverCoordinator.tsx
  • src/components/launch/popovers/MicPopover.tsx
  • src/components/launch/popovers/MorePopover.tsx
  • src/components/launch/popovers/PopoverScaffold.tsx
  • src/components/launch/popovers/ProjectPopover.tsx
  • src/components/launch/popovers/SourcePopover.tsx
  • src/components/launch/popovers/WebcamPopover.tsx
  • src/components/launch/popovers/launchPopoverTypes.ts
  • src/components/video-editor/AddCustomFontDialog.tsx
  • src/components/video-editor/AnnotationOverlay.tsx
  • src/components/video-editor/AnnotationSettingsPanel.tsx
  • src/components/video-editor/ArrowSvgs.tsx
  • src/components/video-editor/CropControl.tsx
  • src/components/video-editor/ExportSettingsMenu.tsx
  • src/components/video-editor/ExtensionIcon.tsx
  • src/components/video-editor/ExtensionManager.tsx
  • src/components/video-editor/FormatSelector.tsx
  • src/components/video-editor/GifOptionsPanel.tsx
  • src/components/video-editor/KeyboardShortcutsHelp.tsx
  • src/components/video-editor/PlaybackControls.tsx
  • src/components/video-editor/ProjectBrowserDialog.tsx
  • src/components/video-editor/SettingsPanel.tsx
  • src/components/video-editor/ShortcutsConfigDialog.tsx
  • src/components/video-editor/SliderControl.tsx
  • src/components/video-editor/TutorialHelp.tsx
  • src/components/video-editor/VideoEditor.tsx
  • src/components/video-editor/VideoPlayback.tsx
  • src/components/video-editor/WebcamCropControl.tsx
  • src/components/video-editor/audio.test.ts
  • src/components/video-editor/audio/audioTypes.ts
  • src/components/video-editor/audio/clipAudio.ts
  • src/components/video-editor/audio/useAudioPreviewSync.ts
  • src/components/video-editor/audio/useClipAudioSettingsController.ts
  • src/components/video-editor/audio/useSourceAudioFallback.ts
  • src/components/video-editor/audio/useSourceAudioTrackSettings.ts
  • src/components/video-editor/audio/useVideoEditorAudio.ts
  • src/components/video-editor/audio/waveform/WaveformGenerator.ts
  • src/components/video-editor/audio/waveform/waveform.worker.ts
  • src/components/video-editor/autoCaptionSource.test.ts
  • src/components/video-editor/autoCaptionSource.ts
  • src/components/video-editor/captionEditing.test.ts
  • src/components/video-editor/captionEditing.ts
  • src/components/video-editor/captionLayout.ts
  • src/components/video-editor/captionStyle.ts
  • src/components/video-editor/cursorMotionPresets.ts
  • src/components/video-editor/editorPreferences.test.ts
  • src/components/video-editor/editorPreferences.ts
  • src/components/video-editor/exportDimensions.test.ts
  • src/components/video-editor/exportDimensions.ts
  • src/components/video-editor/index.ts
  • src/components/video-editor/projectPersistence.ts
  • src/components/video-editor/timeline/Item.tsx
  • src/components/video-editor/timeline/ItemGlass.module.css
  • src/components/video-editor/timeline/Row.tsx
  • src/components/video-editor/timeline/TimelineEditor.tsx
  • src/components/video-editor/timeline/components/axis/TimelineAxis.tsx
  • src/components/video-editor/timeline/components/markers/KeyframeMarkers.tsx
  • src/components/video-editor/timeline/components/overlays/ClipMarkerOverlay.tsx
  • src/components/video-editor/timeline/components/playhead/PlaybackCursor.tsx
  • src/components/video-editor/timeline/components/toolbar/TimelineToolbar.tsx
  • src/components/video-editor/timeline/components/viewport/TimelineCanvas.tsx
  • src/components/video-editor/timeline/components/waveform/AudioWaveform.tsx
  • src/components/video-editor/timeline/components/wrapper/TimelineWrapper.tsx
  • src/components/video-editor/timeline/core/constants.ts
  • src/components/video-editor/timeline/core/rows.test.ts
  • src/components/video-editor/timeline/core/rows.ts
  • src/components/video-editor/timeline/core/spans.test.ts
  • src/components/video-editor/timeline/core/spans.ts
  • src/components/video-editor/timeline/core/time.test.ts
  • src/components/video-editor/timeline/core/time.ts
  • src/components/video-editor/timeline/core/timelineTypes.ts
  • src/components/video-editor/timeline/dnd/engine.test.ts
  • src/components/video-editor/timeline/dnd/engine.ts
  • src/components/video-editor/timeline/hooks/actions/useTimelineAudioActions.ts
  • src/components/video-editor/timeline/hooks/actions/useTimelineZoomActions.ts
  • src/components/video-editor/timeline/hooks/useTimelineAudioPeaks.ts
  • src/components/video-editor/timeline/hooks/useTimelineDndBindings.ts
  • src/components/video-editor/timeline/hooks/useTimelineEditorRuntime.ts
  • src/components/video-editor/timeline/hooks/useTimelineKeyboardShortcuts.ts
  • src/components/video-editor/timeline/hooks/useTimelineNormalization.ts
  • src/components/video-editor/timeline/hooks/useTimelineRange.ts
  • src/components/video-editor/timeline/hooks/useTimelineSelection.ts
  • src/components/video-editor/timeline/hooks/utils/timelineAudioPlacement.test.ts
  • src/components/video-editor/timeline/hooks/utils/timelineAudioPlacement.ts
  • src/components/video-editor/timeline/hooks/utils/timelineNotifications.ts
  • src/components/video-editor/timeline/hooks/utils/timelineSelectionUtils.test.ts
  • src/components/video-editor/timeline/hooks/utils/timelineSelectionUtils.ts
  • src/components/video-editor/timeline/model/timelineModel.test.ts
  • src/components/video-editor/timeline/model/timelineModel.ts
  • src/components/video-editor/timeline/timelineLayout.test.ts
  • src/components/video-editor/timeline/timelineLayout.ts
  • src/components/video-editor/timeline/zoomSuggestionUtils.test.ts
  • src/components/video-editor/timeline/zoomSuggestionUtils.ts
  • src/components/video-editor/types.test.ts
  • src/components/video-editor/types.ts
  • src/components/video-editor/videoPlayback/constants.ts
  • src/components/video-editor/videoPlayback/cursorFollowCamera.test.ts
  • src/components/video-editor/videoPlayback/cursorFollowCamera.ts
  • src/components/video-editor/videoPlayback/cursorLoopTelemetry.ts
  • src/components/video-editor/videoPlayback/cursorRenderer.ts
  • src/components/video-editor/videoPlayback/cursorSway.test.ts
  • src/components/video-editor/videoPlayback/cursorSway.ts
  • src/components/video-editor/videoPlayback/cursorViewport.test.ts
  • src/components/video-editor/videoPlayback/cursorViewport.ts
  • src/components/video-editor/videoPlayback/focusUtils.ts
  • src/components/video-editor/videoPlayback/index.ts
  • src/components/video-editor/videoPlayback/layoutUtils.ts
  • src/components/video-editor/videoPlayback/mathUtils.ts
  • src/components/video-editor/videoPlayback/motionSmoothing.ts
  • src/components/video-editor/videoPlayback/overlayUtils.ts
  • src/components/video-editor/videoPlayback/uploadedCursorAssets.ts
  • src/components/video-editor/videoPlayback/videoEventHandlers.test.ts
  • src/components/video-editor/videoPlayback/videoEventHandlers.ts
  • src/components/video-editor/videoPlayback/webcamSync.test.ts
  • src/components/video-editor/videoPlayback/webcamSync.ts
  • src/components/video-editor/videoPlayback/zoomAnimation.test.ts
  • src/components/video-editor/videoPlayback/zoomRegionUtils.ts
  • src/components/video-editor/videoPlayback/zoomTransform.test.ts
  • src/components/video-editor/videoPlayback/zoomTransform.ts
  • src/components/video-editor/webcamOverlay.test.ts
  • src/components/video-editor/webcamOverlay.ts
  • src/contexts/ShortcutsContext.tsx
  • src/engine/claudeBridge.ts
  • src/engine/exportPipeline.ts
  • src/engine/theatreSetup.ts
  • src/features/3d-mockup/ai-modal.jsx
  • src/features/3d-mockup/app.jsx
  • src/features/3d-mockup/export-modal.jsx
  • src/features/3d-mockup/index.html
  • src/features/3d-mockup/panels.jsx
  • src/features/3d-mockup/presets-modal.jsx
  • src/features/3d-mockup/styles.css
  • src/features/3d-mockup/timeline.jsx

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added the Slop label May 16, 2026
@github-actions
Copy link
Copy Markdown
Contributor

⚠️ This pull request has been flagged by Anti-Slop.
Our automated checks detected patterns commonly associated with
low-quality or automated/AI submissions (failure count reached).
No automatic closure — a maintainer will review it.
If this is legitimate work, please add more context, link issues, or ping us.

@NabilRFG12
Copy link
Copy Markdown
Author

o

@NabilRFG12 NabilRFG12 closed this May 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants