diff --git a/Samples.md b/Samples.md index b39471687..3f91b5846 100644 --- a/Samples.md +++ b/Samples.md @@ -12,6 +12,7 @@ This is a list of all samples in this package. You can also find them in the Uni | [Device Sensors](https://engine.needle.tools/samples-uploads/device-sensors/) | Orientation Sensor Access
Scripting Interaction| | [Hotspots](https://engine.needle.tools/samples-uploads/hotspots) | Annotate 3D content
Interaction Scripting XR| | [QuickLook Characters](https://engine.needle.tools/samples-uploads/usdz-characters/) | Character controller that works in iOS AR too
iOS AR XR Interaction USDZ Everywhere Actions| +| [Recorded Avatars](https://engine.needle.tools/samples-uploads/avatar-recording/) | Simple way how to animate avatars
Animation Rendering| | [Shooting Range](https://engine.needle.tools/samples-uploads/shooting-range/) | Score the most points by hitting as many shots without missing!
Games Interaction Scripting XR HTML| | [Musical Instrument](https://engine.needle.tools/samples-uploads/musical-instrument) | Play audio and animation on click interactions
iOS AR Audio XR Animation Everywhere Actions| | [Image Tracking](https://engine.needle.tools/samples-uploads/image-tracking) | Placing content on images
iOS AR XR Everywhere Actions| @@ -25,6 +26,8 @@ This is a list of all samples in this package. You can also find them in the Uni | [Ground Projection](https://engine.needle.tools/samples-uploads/groundprojection) | Floor projection from environment maps
Rendering| | [Interactive Map](https://engine.needle.tools/samples-uploads/interactive-map) | Openstreetmap.org integration in 3D
Scripting Frontend| | [Level of Detail](https://engine.needle.tools/samples-uploads/lods/) | Increase and decrease quality based on camera distance. (LOD)
Rendering| +| [Multiple Cameras](https://engine.needle.tools/samples-uploads/multiple-cameras) | Rendering multiple cameras to the screen
Rendering Scripting| +| [Panorama Controls](https://engine.needle.tools/samples-uploads/panorama-controls) | Camera controls with gyroscope support
Scripting Interaction| | [QuickLook Color Menu](https://engine.needle.tools/samples-uploads/usdz-color-menu/) | Color selection with an interface
iOS AR Interaction XR USDZ Everywhere Actions| | [QuickLook Interactions](https://engine.needle.tools/samples-uploads/usdz-interactivity) | Various interactive examples compatible with iOS AR
iOS AR Audio Interaction XR USDZ Everywhere Actions| | [Screensharing](https://engine.needle.tools/samples-uploads/screensharing) | WebRTC and Streaming
Networking XR| @@ -35,6 +38,7 @@ This is a list of all samples in this package. You can also find them in the Uni | [Svelte integration](https://engine.needle.tools/samples-uploads/svelte-project-sample) | Integration with the Svelte web framework.
UI Frameworks Frontend| | [SvelteKit integration](https://needle-engine.github.io/sveltekit-sample/) | Integration with SvelteKit for dynamic or static pages
UI Frameworks Frontend| | [Vue.js Integration](https://engine.needle.tools/samples-uploads/vue-project-sample/) | Integration with the Vue.js web framework.
UI Frameworks Frontend| +| [Contact Shadows](https://engine.needle.tools/samples-uploads/contact-shadows) | Proximity based soft shadows for flat surfaces
Rendering| | [iframe Content](https://engine.needle.tools/samples-uploads/iframe-content/?url=https://www.youtube.com/embed/puWNRrG4MCg) | Displaying external web pages in 3D
Rendering HTML| | [MediaPipe Hands](https://engine.needle.tools/samples-uploads/mediapipe-hands/) | Control the scene with your hands
XR Interaction| | [Multiple lightmaps](https://engine.needle.tools/samples-uploads/multi-lightmaps/) | Easily bake multiple lightmaps for a scene and switch between different lightmaps at runtime.
Rendering| @@ -50,6 +54,7 @@ This is a list of all samples in this package. You can also find them in the Uni | [Third-Person Controller](https://engine.needle.tools/samples-uploads/character-controller) | Characters, Animations and Controls
Animation Games Interaction| | [Transmission](https://engine.needle.tools/samples-uploads/transmission/) | Glass vase refraction
Rendering| | [Voxel Editor](https://engine.needle.tools/samples-uploads/voxel-editor) | Very basic voxel editor made with Everywhere Actions
Interaction iOS AR XR Everywhere Actions| +| [VRM Character](https://engine.needle.tools/samples-uploads/vrm-character-loading) | Loading support for VRM files
Dynamic Content Scripting| | [Digital Landscape](https://engine.needle.tools/samples-uploads/digital-landscape/) | Custom shader showcasing terrain visualization
Rendering| | [PostProcessing](https://engine.needle.tools/samples-uploads/postprocessing) | PostProcessing with DoF, Bloom, SSAO and more
Rendering PostProcessing| | [Sidescroller](https://engine.needle.tools/samples-uploads/sidescroller) | Sidescroller with desktop, touch and gamepad inputs, using sprites.
Games Interaction Scripting| @@ -57,13 +62,16 @@ This is a list of all samples in this package. You can also find them in the Uni | [Animated Properties](https://engine.needle.tools/samples-uploads/animated-properties) | Powerful animation capabilities. Animate material values, scripts, objects.
Animation Rendering| | [AnimatorController](https://engine.needle.tools/samples-uploads/animatorcontroller) | Simple animator controller to transition between two states and play a sound effect (no code)
Animation| | [AR Camera Background](https://engine.needle.tools/samples-uploads/ar-camera-background) | Modify the camera stream and use it for material effects.
XR Rendering| +| [Body Tracking](https://engine.needle.tools/samples-uploads/body-tracking/) | Whole body tracking in XR
XR Scripting| | [Custom Hands](https://engine.needle.tools/samples-uploads/custom-hands/) | Custom hand models in WebXR
XR Interaction| | [Depth sensing](https://engine.needle.tools/samples-uploads/depth-sensing/) | Blend virtual objects with your real environment
Rendering XR| | [First Person Multiplayer](https://engine.needle.tools/samples-uploads/first-person-controller-multiplayer) | Character Controller with Touch Support and Multiplayer capability
Games Networking Interaction Scripting| | [First Person Singleplayer](https://engine.needle.tools/samples-uploads/first-person-controller-singleplayer/) | First Person Character Controller with Touch Support
Games Interaction Scripting Physics| | [Fonts and Text](https://engine.needle.tools/samples-uploads/fonts/) | Displaying text, rich text, font families
UI| | [Javascript Communication](https://engine.needle.tools/samples-uploads/javascript-communication) | Communication between Needle Engine and external javascript
Scripting HTML Frameworks| +| [Jet Engine](https://engine.needle.tools/samples-uploads/product-showcase/) | Showcase your product interactivly
Animation Rendering USDZ| | [Line Drawing](https://engine.needle.tools/samples-uploads/mesh-lines/) | Line drawing in 3D for annotations and scribbles
Interaction Networking XR Rendering| +| [Material X](https://engine.needle.tools/samples-uploads/material-x) | Widly supported shader node system
Rendering| | [Multi Scenes (dynamic loading)](https://engine.needle.tools/samples-uploads/dynamically-load-scenes) | Lazy load and switch scenes
Performance and Optimization Dynamic Content| | [Navmesh & pathfinding](https://engine.needle.tools/samples-uploads/navmesh/) | Generate navmesh and find a path between two points
Scripting| | [Networking Players](https://engine.needle.tools/samples-uploads/networking_players) | Spawn and control players - this sample also shows the lifecycle of networked players
Networking Scripting| @@ -71,11 +79,15 @@ This is a list of all samples in this package. You can also find them in the Uni | [React Sample](https://needle-engine.github.io/react-sample/) | Integrate Needle Engine into a react component
Frameworks HTML Frontend| | [Scripting Snippets](https://engine.needle.tools/samples-uploads/scripting-snippets/) | Various scripts and helpers to understand custom components
Scripting| | [Shaders](https://engine.needle.tools/samples-uploads/custom-shaders) | Exporting Unity Shaders to the web
Rendering| +| [Snow Globe](https://engine.needle.tools/samples-uploads/physics-snowglobe/) | Resetting physics
Physics iOS AR| +| [Summoning Animation](https://engine.needle.tools/samples-uploads/summoning-animation/) | Complex animation
Rendering iOS AR XR| | [Synchronized Animator](https://engine.needle.tools/samples-uploads/synced-animator) | Synchronize animator and animation state over network
Networking Animation Scripting| | [Texture Details](https://engine.needle.tools/samples-uploads/texture-details) | High-res textures and AR placement
Rendering XR iOS AR Everywhere Actions| +| [USDZ Animator](https://engine.needle.tools/samples-uploads/usdz-animator/) | Skinned mesh animated character
Animation iOS AR| | [Video Playback](https://engine.needle.tools/samples-uploads/video-playback) | Displaying videos, codecs, transparency
Rendering| | [Visibility and State](https://engine.needle.tools/samples-uploads/object-visibility/) | Visibility, enabled/disabled, hierarchy
Scripting Rendering| | [Worldspace UI](https://engine.needle.tools/samples-uploads/worldspace-ui/) | Create 3D UIs with Canvas
UI Animation| +| [Splines](https://engine.needle.tools/samples-uploads/splines/) | Paths made out of bezier curves
Animation Scripting| | [Framerates](https://engine.needle.tools/samples-uploads/framerate) | This sample shows how to modify the target framerate
Performance and Optimization| | [HTML AR Overlay](https://engine.needle.tools/samples-uploads/ar-overlay/) | Custom DOM Overlays in AR
UI HTML Frontend| | [HTML Custom Layout](https://engine.needle.tools/samples-uploads/html-custom-layout) | Custom DOM Layout
UI HTML Frontend| @@ -93,4 +105,5 @@ This is a list of all samples in this package. You can also find them in the Uni | [Deploy to Github Pages](https://kipash.github.io/needle-sample-github-pages/) | Deployments
Deployment| | [Deploy to Glitch](https://glitch.com/~quark-knowledgeable-caravan) | Deployments
Deployment| | [Deploy to Itch](https://itch.io/embed-upload/10256073?color=000000) | Deployments
Deployment| +| [Device Detection](https://engine.needle.tools/samples-uploads/device-detection/) | Device and browser detection API
Scripting| diff --git a/samples.json b/samples.json index 665d87f6e..a01eb7fc8 100644 --- a/samples.json +++ b/samples.json @@ -4,7 +4,7 @@ "Description": "Lynx R1 scrolling website", "Thumbnail": { "relativePath": "package/Editor/Screenshots/Scrollytelling.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Scrollytelling.jpg?v=d6e1702043cd16f2531c8135491e4bb6" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Scrollytelling.jpg?v=5a9d17c0f0c6392f4130c4133a3ab879" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/scrollytelling/", "Priority": 30, @@ -19,7 +19,7 @@ "Description": "Physics, Passthrough, Walls and Furniture on Quest / Quest Pro", "Thumbnail": { "relativePath": "package/Editor/Screenshots/PresencePlatformRoomTracking.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/PresencePlatformRoomTracking.jpg?v=edd5bd01784379c63da2a39cf7a31416" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/PresencePlatformRoomTracking.jpg?v=12bbb8343e2fdf129dcd27ad1592c83c" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/presence-platform/", "Priority": 30, @@ -52,7 +52,7 @@ "Description": "Orientation Sensor Access", "Thumbnail": { "relativePath": "package/Editor/Screenshots/DeviceSensors.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/DeviceSensors.jpg?v=e77a48d71ac2e4d90922038633406752" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/DeviceSensors.jpg?v=ea08f5769d1d7d25dd3a21cd2c91dc3e" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/device-sensors/", "Priority": 20, @@ -67,7 +67,7 @@ "Description": "Annotate 3D content", "Thumbnail": { "relativePath": "package/Editor/Screenshots/Hotspots.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Hotspots.jpg?v=f9d42d088d1ced894b6e862f032701a9" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Hotspots.jpg?v=291e632771e23c50914516076b07b643" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/hotspots", "Priority": 20, @@ -97,6 +97,21 @@ "Name": "QuickLook Characters", "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/USDZExport/README.md" }, + { + "Description": "Simple way how to animate avatars", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/RecordedAvatars.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/RecordedAvatars.jpg?v=598706d7cfd3fc3cdb00b0be47550de2" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/avatar-recording/", + "Priority": 20, + "Tags": [ + "Animation", + "Rendering" + ], + "Name": "Recorded Avatars", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/RecordedAvatar/README.md" + }, { "Description": "Score the most points by hitting as many shots without missing!", "Thumbnail": { @@ -198,7 +213,7 @@ "Description": "Networking, WebXR, Drag & Duplicate", "Thumbnail": { "relativePath": "package/Editor/Screenshots/Sandbox.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Sandbox.jpg?v=d93cfb34a2d12310542c680791e96d76" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Sandbox.jpg?v=71ad3f12cf607a1870d03a96fa748654" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/sandbox", "Priority": 15, @@ -214,7 +229,7 @@ "Description": "Faster load times, smaller payloads", "Thumbnail": { "relativePath": "package/Editor/Screenshots/ProgressiveLoading.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/ProgressiveLoading.jpg?v=56186a71a34d9200ec8366e5fff25a48" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/ProgressiveLoading.jpg?v=dfb4568032316c075534a2e9d2e1ec9a" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/progressive-textures", "Priority": 15, @@ -229,7 +244,7 @@ "Description": "Jewelry rendering and caustics bake", "Thumbnail": { "relativePath": "package/Editor/Screenshots/JewelryRing.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/JewelryRing.jpg?v=f94da94e5d4a84e3e70eab59d31d94b1" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/JewelryRing.jpg?v=65398f50f33d7342e94108173c39d4f7" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/jewelry-ring", "Priority": 15, @@ -244,7 +259,7 @@ "Description": "Renderer and tooling for gaussian splatting, a novel way to render 3D content.", "Thumbnail": { "relativePath": "package/Editor/Screenshots/GaussianSplatting.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/GaussianSplatting.jpg?v=c841a9620ef7a6401ae2df269d5b49f6" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/GaussianSplatting.jpg?v=313e2b1eda79d561e8c84715fbccc5d9" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/gaussian-splats", "Priority": 15, @@ -259,7 +274,7 @@ "Description": "Floor projection from environment maps", "Thumbnail": { "relativePath": "package/Editor/Screenshots/GroundProjection.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/GroundProjection.jpg?v=58bda2943ae15e204236cd4383882856" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/GroundProjection.jpg?v=9ecbdf8a6ad3f62a59ba2ff71ef8299f" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/groundprojection", "Priority": 15, @@ -298,6 +313,36 @@ "Name": "Level of Detail", "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/LOD/README.md" }, + { + "Description": "Rendering multiple cameras to the screen", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/MultiCamera.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/MultiCamera.jpg?v=4eaf9a35385a3b7faf816170258539f4" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/multiple-cameras", + "Priority": 15, + "Tags": [ + "Rendering", + "Scripting" + ], + "Name": "Multiple Cameras", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/MultiCamera/README.md" + }, + { + "Description": "Camera controls with gyroscope support", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/PanoramaControls.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/PanoramaControls.jpg?v=fecb7484039395c432436ee8867fe16d" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/panorama-controls", + "Priority": 15, + "Tags": [ + "Scripting", + "Interaction" + ], + "Name": "Panorama Controls", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/DeviceSensors/README.md" + }, { "Description": "Color selection with an interface", "Thumbnail": { @@ -320,7 +365,7 @@ "Description": "Various interactive examples compatible with iOS AR", "Thumbnail": { "relativePath": "package/Editor/Screenshots/USDZInteractivity.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/USDZInteractivity.jpg?v=65cb7451b5be97b4b2177eef29bcb159" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/USDZInteractivity.jpg?v=27a412cc8e1d9df20fb57695a624ac02" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/usdz-interactivity", "Priority": 15, @@ -339,7 +384,7 @@ "Description": "WebRTC and Streaming", "Thumbnail": { "relativePath": "package/Editor/Screenshots/Screensharing.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Screensharing.jpg?v=45037e17ec2585713c1afed55bec8d88" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Screensharing.jpg?v=5c174952282bc9294d7b9199f7d105a5" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/screensharing", "Priority": 15, @@ -369,7 +414,7 @@ "Description": "Placing audio sources in 3D with spatial falloff", "Thumbnail": { "relativePath": "package/Editor/Screenshots/SpatialAudio.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/SpatialAudio.jpg?v=84b0b28120cedd70ae45a69ab19bdb7d" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/SpatialAudio.jpg?v=945d3281359a514f6c55cfa193a17750" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/spatial-audio/", "Priority": 12, @@ -386,7 +431,7 @@ "Description": "Deploy projects made with Needle to Netlify", "Thumbnail": { "relativePath": "package/Editor/Screenshots/Netlify.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Netlify.jpg?v=027b1ec4a7e45b8f4773a0e0dfb57d89" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Netlify.jpg?v=b796dabf4c1d44830c53fbc1b682f636" }, "LiveUrl": "https://needle-engine-netlify-sample.netlify.app/", "Priority": 11, @@ -400,7 +445,7 @@ "Description": "Integration with the NextJS framework.", "Thumbnail": { "relativePath": "package/Editor/Screenshots/NextJSProjectSample.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/NextJSProjectSample.jpg?v=15f52811a8d8b23d10d96d9c98105118" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/NextJSProjectSample.jpg?v=1a9d9635be80e8917d8539caabcad242" }, "LiveUrl": "https://needle-engine-nextjs.vercel.app", "Priority": 11, @@ -416,7 +461,7 @@ "Description": "Integration with the Svelte web framework.", "Thumbnail": { "relativePath": "package/Editor/Screenshots/SvelteProjectSample.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/SvelteProjectSample.jpg?v=1e1cc5be90b39f79e6e573a7f2f506f2" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/SvelteProjectSample.jpg?v=df11441cae0098877c9401d72d5749ea" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/svelte-project-sample", "Priority": 11, @@ -432,7 +477,7 @@ "Description": "Integration with SvelteKit for dynamic or static pages", "Thumbnail": { "relativePath": "package/Editor/Screenshots/SvelteKitProjectSample.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/SvelteKitProjectSample.jpg?v=91c689a1cfcfcbddc068f574b15a2e35" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/SvelteKitProjectSample.jpg?v=65ac0379532e1f32d333791d9276d77a" }, "LiveUrl": "https://needle-engine.github.io/sveltekit-sample/", "Priority": 11, @@ -448,7 +493,7 @@ "Description": "Integration with the Vue.js web framework.", "Thumbnail": { "relativePath": "package/Editor/Screenshots/VueProjectSample.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/VueProjectSample.jpg?v=3ca2a9a74b10cea0054a6e8e6b62bf89" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/VueProjectSample.jpg?v=5978efa4e36985c904cda9df60f8fc7c" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/vue-project-sample/", "Priority": 11, @@ -460,11 +505,25 @@ "Name": "Vue.js Integration", "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/Vue Project Sample/README.md" }, + { + "Description": "Proximity based soft shadows for flat surfaces", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/ContactShadows.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/ContactShadows.jpg?v=a9bf75df1969e9a1a7483580d5887df3" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/contact-shadows", + "Priority": 10, + "Tags": [ + "Rendering" + ], + "Name": "Contact Shadows", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/ContactShadows/README.md" + }, { "Description": "Displaying external web pages in 3D", "Thumbnail": { "relativePath": "package/Editor/Screenshots/iFrameContent.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/iFrameContent.jpg?v=70f2e6da5d4814faf5e6e2aca69d6cd0" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/iFrameContent.jpg?v=f8102110a0495dae1473e76b710525ee" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/iframe-content/?url=https://www.youtube.com/embed/puWNRrG4MCg", "Priority": 10, @@ -508,7 +567,7 @@ "Description": "Particle Systems and Trails", "Thumbnail": { "relativePath": "package/Editor/Screenshots/Particles.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Particles.jpg?v=208db1fb2a25c626580fd798cfb896b6" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Particles.jpg?v=21b8a741ce5f47f556dc6a9cc99f249d" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/particles/", "Priority": 10, @@ -522,7 +581,7 @@ "Description": "Physical objects interacting with animated objects", "Thumbnail": { "relativePath": "package/Editor/Screenshots/PhysicsAnimation.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/PhysicsAnimation.jpg?v=ecd96f0dfb615260a9b0edd86ad0dad8" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/PhysicsAnimation.jpg?v=00e9d511c66ae4bdb15ba5350ee4ff35" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/physics-animation/", "Priority": 10, @@ -566,7 +625,7 @@ "Description": "Rigidbodies, Colliders, Triggers", "Thumbnail": { "relativePath": "package/Editor/Screenshots/Cannon Playground.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Cannon Playground.jpg?v=57bcb23256badbfc72f9834fc054080c" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Cannon Playground.jpg?v=566b51167357450c08ee45e619025376" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/physics-cannon/", "Priority": 10, @@ -595,7 +654,7 @@ "Description": "Configure your product in quicklook", "Thumbnail": { "relativePath": "package/Editor/Screenshots/USDZProduct.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/USDZProduct.jpg?v=1f545133e6710dcaba59773938b255c1" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/USDZProduct.jpg?v=6f49c32348c833226ac3c878870b33d7" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/usdz-product", "Priority": 10, @@ -613,7 +672,7 @@ "Description": "Set custom reflections per object", "Thumbnail": { "relativePath": "package/Editor/Screenshots/ReflectionProbes.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/ReflectionProbes.jpg?v=ef60cbe9b08e245d1734b5b0c22567ec" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/ReflectionProbes.jpg?v=2ea4c516abd5ad29de33afcc53ae7340" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/reflection-probes", "Priority": 10, @@ -643,7 +702,7 @@ "Description": "Characters, Animations and Controls", "Thumbnail": { "relativePath": "package/Editor/Screenshots/Third-Person Controller.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Third-Person Controller.jpg?v=9e14ed5b422264ec375c99b1b8b3361d" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Third-Person Controller.jpg?v=d2f48b0ee2d089ba52b2575ef1878d7f" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/character-controller", "Priority": 10, @@ -686,11 +745,26 @@ "Name": "Voxel Editor", "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/USDZCustomBehaviours/README.md" }, + { + "Description": "Loading support for VRM files", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/VRMLoading.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/VRMLoading.jpg?v=d47631d6c94bd9d6c97ca0552ac87fd9" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/vrm-character-loading", + "Priority": 10, + "Tags": [ + "Dynamic Content", + "Scripting" + ], + "Name": "VRM Character", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/VRM/README.md" + }, { "Description": "Custom shader showcasing terrain visualization", "Thumbnail": { "relativePath": "package/Editor/Screenshots/DigitalLandscape.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/DigitalLandscape.jpg?v=bf1a262414e7e95eaa9a22bb5db46d34" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/DigitalLandscape.jpg?v=d4ab0fc8d11fe37517d2990de40f9adb" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/digital-landscape/", "Priority": 7, @@ -704,7 +778,7 @@ "Description": "PostProcessing with DoF, Bloom, SSAO and more", "Thumbnail": { "relativePath": "package/Editor/Screenshots/PostProcessing.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/PostProcessing.jpg?v=4039ed826ae597f628a3d0cdd8a1d148" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/PostProcessing.jpg?v=e6fed6f99b20614ec76b8cd6ad8b6f99" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/postprocessing", "Priority": 6, @@ -719,7 +793,7 @@ "Description": "Sidescroller with desktop, touch and gamepad inputs, using sprites.", "Thumbnail": { "relativePath": "package/Editor/Screenshots/Sidescroller.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Sidescroller.jpg?v=c842b36e591e7a65eee5e431f601eb01" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Sidescroller.jpg?v=a62c284f3f2f54275eb426c9599dfb7d" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/sidescroller", "Priority": 6, @@ -735,7 +809,7 @@ "Description": "Animate material values to create effects and transitions", "Thumbnail": { "relativePath": "package/Editor/Screenshots/AnimatedMaterials.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/AnimatedMaterials.jpg?v=ec68e9be7e91523411b603d6690ac409" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/AnimatedMaterials.jpg?v=25c95086d8138a94658891c350f2e1d3" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/animated-materials/", "Priority": 5, @@ -750,7 +824,7 @@ "Description": "Powerful animation capabilities. Animate material values, scripts, objects.", "Thumbnail": { "relativePath": "package/Editor/Screenshots/AnimatedProperties.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/AnimatedProperties.jpg?v=b66d5120c3fff7552d196770416b2294" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/AnimatedProperties.jpg?v=8d2b09683a7e590b706cdda7f28e2429" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/animated-properties", "Priority": 5, @@ -765,7 +839,7 @@ "Description": "Simple animator controller to transition between two states and play a sound effect (no code)", "Thumbnail": { "relativePath": "package/Editor/Screenshots/AnimatorController.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/AnimatorController.jpg?v=16961e947adbffcb3997ff499da53464" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/AnimatorController.jpg?v=adc7c2b823cc5bb0d8b77ae55dd3b777" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/animatorcontroller", "Priority": 5, @@ -790,11 +864,26 @@ "Name": "AR Camera Background", "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/ARBackground/README.md" }, + { + "Description": "Whole body tracking in XR", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/BodyTracking.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/BodyTracking.jpg?v=4a9e9662e1273f2b16925f587f8f5877" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/body-tracking/", + "Priority": 5, + "Tags": [ + "XR", + "Scripting" + ], + "Name": "Body Tracking", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/BodyTracking/README.md" + }, { "Description": "Custom hand models in WebXR", "Thumbnail": { "relativePath": "package/Editor/Screenshots/CustomHands.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/CustomHands.jpg?v=ca6680e0944c4baa03b82eb8fad73fd3" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/CustomHands.jpg?v=29fd7bfdfa07751efd35b0967759db16" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/custom-hands/", "Priority": 5, @@ -872,7 +961,7 @@ "Description": "Communication between Needle Engine and external javascript", "Thumbnail": { "relativePath": "package/Editor/Screenshots/JavascriptCommunication.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/JavascriptCommunication.jpg?v=23768a233a9d1c305f577b40ff7e39ed" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/JavascriptCommunication.jpg?v=976c5f6c264bf8471086d97256bd1a1a" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/javascript-communication", "Priority": 5, @@ -884,6 +973,22 @@ "Name": "Javascript Communication", "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/Javascript Communication/README.md" }, + { + "Description": "Showcase your product interactivly", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/JetEngine.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/JetEngine.jpg?v=d3a448deda71ca471f7feb0c08d6471d" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/product-showcase/", + "Priority": 5, + "Tags": [ + "Animation", + "Rendering", + "USDZ" + ], + "Name": "Jet Engine", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/JetEngine/README.md" + }, { "Description": "Line drawing in 3D for annotations and scribbles", "Thumbnail": { @@ -901,11 +1006,25 @@ "Name": "Line Drawing", "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/LineDrawing/README.md" }, + { + "Description": "Widly supported shader node system", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/MaterialX.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/MaterialX.jpg?v=e982aa06dddd44053b4d0b7372d3cf29" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/material-x", + "Priority": 5, + "Tags": [ + "Rendering" + ], + "Name": "Material X", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/MaterialXNodes/README.md" + }, { "Description": "Lazy load and switch scenes", "Thumbnail": { "relativePath": "package/Editor/Screenshots/MultiScenes.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/MultiScenes.jpg?v=1618d604bf597717a4ced8a01bd22608" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/MultiScenes.jpg?v=9b98a93caa5d1e45192a450a8712441c" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/dynamically-load-scenes", "Priority": 5, @@ -949,7 +1068,7 @@ "Description": "Scroll through multiple product pages using a Timeline and Timeline Events", "Thumbnail": { "relativePath": "package/Editor/Screenshots/ProductFlyover.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/ProductFlyover.jpg?v=e0b725e9089e46390618f6c9ecafc3d0" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/ProductFlyover.jpg?v=25bc7ca81abad8b35b6a6acf9c818708" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/product-flyover/", "Priority": 5, @@ -966,7 +1085,7 @@ "Description": "Integrate Needle Engine into a react component", "Thumbnail": { "relativePath": "package/Editor/Screenshots/ReactSample.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/ReactSample.jpg?v=df1a0b45853fd5312c1f71b37902a88e" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/ReactSample.jpg?v=033cae60226cda914c82abc3c811008e" }, "LiveUrl": "https://needle-engine.github.io/react-sample/", "Priority": 5, @@ -996,7 +1115,7 @@ "Description": "Exporting Unity Shaders to the web", "Thumbnail": { "relativePath": "package/Editor/Screenshots/CustomShader.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/CustomShader.jpg?v=e07dd5c6497e9267c0e0a93055dbd9db" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/CustomShader.jpg?v=88b3a1bb780d1624da2a8f7740a34596" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/custom-shaders", "Priority": 5, @@ -1006,6 +1125,37 @@ "Name": "Shaders", "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/Shaders/README.md" }, + { + "Description": "Resetting physics", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/SnowGlobe.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/SnowGlobe.jpg?v=2af7928f5a92aaea82c170f0e02f5e70" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/physics-snowglobe/", + "Priority": 5, + "Tags": [ + "Physics", + "iOS AR" + ], + "Name": "Snow Globe", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/Physics/README.md" + }, + { + "Description": "Complex animation", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/SummoningAnimation.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/SummoningAnimation.jpg?v=336421a2b751e7c377a2c4a0622f5c68" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/summoning-animation/", + "Priority": 5, + "Tags": [ + "Rendering", + "iOS AR", + "XR" + ], + "Name": "Summoning Animation", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/SummoningAnimation/README.md" + }, { "Description": "Synchronize animator and animation state over network", "Thumbnail": { @@ -1039,11 +1189,26 @@ "Name": "Texture Details", "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/TextureDetails/README.md" }, + { + "Description": "Skinned mesh animated character", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/USDZAnimator.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/USDZAnimator.jpg?v=b8952a3b138bbdc5df3d2433ce85c260" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/usdz-animator/", + "Priority": 5, + "Tags": [ + "Animation", + "iOS AR" + ], + "Name": "USDZ Animator", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/USDZExport/README.md" + }, { "Description": "Displaying videos, codecs, transparency", "Thumbnail": { "relativePath": "package/Editor/Screenshots/VideoPlayer.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/VideoPlayer.jpg?v=21f3d643a2ee3a6f8d6ac7d12f74e375" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/VideoPlayer.jpg?v=de57db12f13e42f1490742168298dbe0" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/video-playback", "Priority": 5, @@ -1072,7 +1237,7 @@ "Description": "Create 3D UIs with Canvas", "Thumbnail": { "relativePath": "package/Editor/Screenshots/UIButton.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/UIButton.jpg?v=3d234646e930482525103387c299ceee" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/UIButton.jpg?v=476a79303c654387952ea2550ed72c9d" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/worldspace-ui/", "Priority": 5, @@ -1083,6 +1248,21 @@ "Name": "Worldspace UI", "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/UI/README.md" }, + { + "Description": "Paths made out of bezier curves", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/Splines.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Splines.jpg?v=9050b9ac102e56eabc3d627b0676f409" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/splines/", + "Priority": 1, + "Tags": [ + "Animation", + "Scripting" + ], + "Name": "Splines", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/Splines/README.md" + }, { "Description": "This sample shows how to modify the target framerate", "Thumbnail": { @@ -1101,7 +1281,7 @@ "Description": "Custom DOM Overlays in AR", "Thumbnail": { "relativePath": "package/Editor/Screenshots/AROverlay.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/AROverlay.jpg?v=b288b7f9cc199feb1b5342a4077d269e" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/AROverlay.jpg?v=cf2154936446036415edc487ed4c4d35" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/ar-overlay/", "Priority": 0, @@ -1133,7 +1313,7 @@ "Description": "AR and VR buttons can be customized for your app.", "Thumbnail": { "relativePath": "package/Editor/Screenshots/HTMLCustomXRButtons.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/HTMLCustomXRButtons.jpg?v=ce6a6a7ad802b23745c04deb2cb98411" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/HTMLCustomXRButtons.jpg?v=550e6db53a4ee577c5c41293306fc4e3" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/html-custom-xr-buttons", "Priority": 0, @@ -1149,7 +1329,7 @@ "Description": "Use p5.js to draw dynamic and interactive textures", "Thumbnail": { "relativePath": "package/Editor/Screenshots/p5js.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/p5js.jpg?v=20f7036f7280f9a13a0fa2d803aee7b4" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/p5js.jpg?v=ec59e221f6eac59497dc4245e725ef3d" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/p5js", "Priority": 0, @@ -1166,7 +1346,7 @@ "Description": "3D Holographic Display", "Thumbnail": { "relativePath": "package/Editor/Screenshots/LookingGlass.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/LookingGlass.jpg?v=94bcb0f750d5a9216c9d66ab29a88f18" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/LookingGlass.jpg?v=7f6932d380aefda4c09606bf7a6d6f33" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/looking-glass/", "Priority": 0, @@ -1196,7 +1376,7 @@ "Description": "Particles Spawned on Collision with Slowmotion Effect and Physics Materials", "Thumbnail": { "relativePath": "package/Editor/Screenshots/Particles On Collision.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Particles On Collision.jpg?v=9d7c6ba52845d95916dbce575818965a" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Particles On Collision.jpg?v=8be74efb98b0ef15fa4ccc423a775a2f" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/particles-on-collision/", "Priority": 0, @@ -1256,7 +1436,7 @@ "Description": "Reactive Zones and Events", "Thumbnail": { "relativePath": "package/Editor/Screenshots/SpatialTrigger.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/SpatialTrigger.jpg?v=7e3b50a85c1fec22f3a51bed45d119f1" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/SpatialTrigger.jpg?v=c49519aa4ea157b15e00ba9e7663c3e8" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/spatial-triggers/", "Priority": 0, @@ -1271,7 +1451,7 @@ "Description": "Animate Sprites using AnimationClips", "Thumbnail": { "relativePath": "package/Editor/Screenshots/Spritesheet.jpg", - "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Spritesheet.jpg?v=172e6bcd8123e29fffced1a4da5d5abf" + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/Spritesheet.jpg?v=76aa0ec87354ef4dd30afbe7c2c3a8f2" }, "LiveUrl": "https://engine.needle.tools/samples-uploads/spritesheet/", "Priority": 0, @@ -1338,6 +1518,20 @@ ], "Name": "Deploy to Itch", "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/Deployments/README.md" + }, + { + "Description": "Device and browser detection API", + "Thumbnail": { + "relativePath": "package/Editor/Screenshots/DeviceDetection.jpg", + "absolutePath": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Editor/Screenshots/DeviceDetection.jpg?v=2aafc8c765d59af7b3101de0ba89c032" + }, + "LiveUrl": "https://engine.needle.tools/samples-uploads/device-detection/", + "Priority": -1, + "Tags": [ + "Scripting" + ], + "Name": "Device Detection", + "ReadmeUrl": "https://raw.githubusercontent.com/needle-tools/needle-engine-samples/main/package/Runtime/DeviceDetection/README.md" } ] } \ No newline at end of file