How to combine VPS with ground plane tracking

I’m new to 8th wall, and have an account with Studio access. I’m looking for the best way to combine world tracking (specifically to anchor assets to the ground), and precise GPS tracking. It’s an AR experience that is part of a public art show, so it’s important that the assets only show up in the assigned spot within the outdoor area.

From looking around at tutorials, I see there’s a world effects, tap to place template which I’ve tried out, and there are tutorials for VPS. However, I’m pretty lost on how to combine both functionalities. I thought I’d start by modifying the tap to place project, so I deleted the cactus and added my assets. However, I do not want them to spawn on tap, just to exist and be tracked to the floor. I’m not sure how to do that, other than to visually position my assets on top of the ground plane. But when I test it out, my assets are floating above the ground. How do I remedy this?

Also, how do I add VPS to the existing tap-to-place project, since the templates have one functionality per template? If someone can link a relevant tutorial, it would help me a lot.

Thank you!

Hi, welcome to the forums!

World Effects is a great way to achieve this behavior. Both the Editor and Niantic Studio handle the ground plane similarly—your camera’s ground plane aligns with Y = 0 in 3D space. This means that if you position your content at Y = 0, it will automatically appear on the ground in AR, with no extra coding required.

Personally, I find Niantic Studio much easier for building World Effects since it provides a visual representation of where your content will be relative to the ground. In contrast, the Editor is entirely code-based, requiring frequent simulator refreshes to check placements. If you’d like, I’d be happy to walk you through setting up a World Effects project in either!

Regarding VPS, how are you planning to use it? VPS and World Effects don’t typically work together, as VPS is essentially a more spatially aware version of World Effects. If you’re looking for precise positioning in real-world locations, VPS might be the better choice. Let me know what you’re aiming to do, and I’d be happy to help!

1 Like

Thank you, @GeorgeButler!
The reason I was looking at VPS is to anchor my content to a specific location within an outdoor setting. I did not want the content to appear just anywhere that the QR code is scanned, but to recognize the location and only make the content appear if the user is in that spot. I needed world effects to ground the models to the ground (the AR experience consists of a pond and a tree, so both need to appear rooted to the ground.

Due to logistics, I’m now thinking of eliminating the VPS and prioritizing world effects because my bigger problem is that the assets appear to follow the camera or float above the ground, and that’s something that can’t happen. Even with Y at 0, the content seems to hover above ground plane and also follows the camera. So I guess my bigger problem is how do I stop that?

Thank you so much

No problem! I’d be happy to take a look if you land your changes and share your project with the support workspace.

Hi @GeorgeButler Sorry to ask this, but what is the exact name of the support space I should be sharing the project to? I tried ā€˜/support’ after the 8th wall url, but it said ā€˜cannot create invite’

Hi, it’s just: ā€œsupportā€. No special characters.

@GeorgeButler
Thank you! I meant /support as in the full url, like ā€˜8th Wall’ I tried it just now, and it worked this time–I think because I used my own account, and not the work account that I’m not an admin of.

I shared a file called ā€˜Meditative Garden.’ This is the world tracking project I’m having trouble with. For one, even when I have the Y coordinates at 0, the assets still appear to float off the ground. I also tried placing them below the ground, like negative Y. That didn’t seem to help much either. The other thing is that the scene seems to be laggy on my device (iphone XR), even though nothing is above 10mb. I heard it may be due to complex animation, but the animations are fairly simple. Any insight you can provide into these 2 issues, I’d really appreciate. Thanks!!

1 Like

Awesome project—did you create the models yourself? They look fantastic! I took a look at your project and compiled some notes below:

If you want to hide objects that go under the ground, the easiest way to do this is by using a Hider material. In the screenshot below, I’ve converted your ground object’s material from a Shadow to a Hider, which effectively clips the parts of the pond that should be hidden beneath the terrain.

With this approach, you can adjust the hider placement to ensure it properly clips the submerged parts of the pond. Additionally, you might want to consider creating another model that conforms better to the terrain, as the current one sits at an angle rather than lying flat.

I definitely see what you mean about performance issues. Testing on a Mac M3, I’m also experiencing some slowdown, which indicates there are optimizations to be made.

To analyze the pond model, I uploaded it to gltf.report, a great tool for validating and optimizing GLTF models. Here are a couple of issues I noticed:

  1. Your pond model contains a large number of textures.
  2. The textures don’t follow power-of-two resolutions (e.g., 512x512, 1024x1024). This is important because if the textures aren’t power-of-two, three.js (or any WebGL-based renderer) will have to resize them at runtime, which can significantly impact performance.

Since textures can be surprisingly taxing on the renderer, reducing their number and ensuring they are power-of-two will help a lot.

Luckily, gltf.report provides an optimization script that can handle most of these issues automatically. You can navigate to the optimization tab, run the script, and download a highly optimized version of your model with minimal effort.

I recommend uploading each of your models to gltf.report running the optimization script, and then replacing the old models in your project. This should significantly improve performance.

let me know how it goes!

1 Like

Thank you so much, @GeorgeButler ! This is extremely helpful. I’m trying it out with a hider material, and you helped me realize that I was using an older version of the pond that still had weird sized textures. I’ve updated it now. It already looks like the experience is running much smoother! I’m still tweaking things around, but this has already helped a lot.

As for the models, I seriously appreciate the compliment! :blush: They are a combination of scans and custom-creation in Blender. The stone lamp was from the backyard of an Airbnb, and I got a scan of the top and added a few things to complete it. Then the cherry blossoms and pond textures were done by image texture painting in Blender and/or procreate. There’s some free assets I added, as well. I’m referring back to this thread as I work, and will update you with the final result.

HUGE THANKS, George!:pray:

1 Like