Repository navigation
feat(node): view a device's 3D model, and place it in AR on the google flavor - #7639
Draft
jamesarich wants to merge 11 commits into
Draft
jamesarich wants to merge 11 commits into
jamesarich wants to merge 11 commits into
Conversation
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
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. Comment |
This comment has been minimized.
This comment has been minimized.
jamesarich
force-pushed
the
feat/device-3d-model
branch
from
October 15, 2026 20:33
a9aff7d to
8a9f288
Compare
This comment has been minimized.
This comment has been minimized.
❌ 1 Tests Failed:
View the top 1 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
jamesarich
force-pushed
the
feat/device-3d-model
branch
from
October 16, 2026 15:50
8a9f288 to
05411f4
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…e flavor The flasher serves a real-size GLB beside each device illustration that has one. Node detail's hero avatar shows a 3D badge when the model exists and opens it full screen, orbitable and lit by a bundled CC0 studio light probe over the theme background, with the illustration as the fallback. On the google flavor an AR action places the model on a real surface at real size through ARCore; the fdroid flavor and desktop have no AR and never show it.
…s AR and rotation
jamesarich
force-pushed
the
feat/device-3d-model
branch
from
October 19, 2026 23:00
4a706dc to
dd0074b
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The flasher now serves a real-size GLB beside each device illustration that has one (meshtastic/web-flasher#461, #462, and #463 for the rebuilt models). This lets a user see the hardware they're looking at in 3D, and on the google flavor stand it on a real surface at real size.
🌟 New Features
asset.copyright, behind an info button as the maps carry their credit.🛠️ Refactoring & Architecture
DeviceModelRepository(core:repository / core:data) overDeviceModelRemoteDataSource(core:network). The flasher answers a missing model with 200 and its HTML shell, so onlymodel/gltf-binarycounts as a model.LocalDeviceModelArViewerin core:ui is the host seam: the google flavor provides an ARCore viewer, fdroid provides null.ARSceneViewrather than SceneView'sPlacementScene, which as of 4.56.0 doesn't pass depth occlusion through; it reuses the library's public tap-to-place, reticle, coaching and shadow-receiver pieces.sceneview-composeSceneViewer. SceneViewer's Android HDR path frees its placeholder environment while the scene still draws it, so Android preloads the probe instead.🧹 Chores
io.github.sceneview4.56.0 (sceneview-compose,sceneview, andarsceneviewon google only). Excludes the mac-only Compose runtime the desktop renderer drags in, and Fuel'skotlin-android-extensions-runtime, which duplicates parcelize classes.VIBRATE, both merged in by SceneView, so neither narrows where the app installs.Testing Performed
GlbBoundsTest: GLB header and accessor-bounds parsing, and reading the embedded copyright notice.DeviceModelRemoteDataSourceTest: URL swap, a served GLB, and the flasher's HTML shell for a missing model.SceneViewManifestTest: GLES 3.0 not required andVIBRATEabsent in the merged manifest.RestPoseTest: every rest pose sits flat on the surface and centered on the anchor, at the case's height, depth or width, with face up turning the screen to the sky.TracerouteHistoryUseCaseTestpasses the new model repository.