Skip to main content
New Participant
December 3, 2025
Question

IWSDK questions

Hiya,

since the IWSDK is so new I can't find a lot of information. I have two questions:

  1. How to make it support keyboard passthrough? I've enabled it on a quest 3 but when I go to the site and "enter vr" the keyboard passthrough disappears.
  2. When trying to build the world with Spatial Editor I can create a nice world, but making it run using the IWSDK there is a weird bluish sphere, which is the background in the default scene. I can't seem to find a way to remove it. What am I missing?

Thanks for your help and if there is a better forum to ask these question please point me to it.

5 replies

michellaneous
Inspiring
December 3, 2025

Hey Redevs​ -- We're looking into this, please standby. Could you clarify what you mean by keyboard passthrough? Are you referring to tracked physical keyboard?

RedevsAuthor
New Participant
December 6, 2025

Yes that is what I mean. 

felixtrz96
Meta Employee
December 4, 2025

Hey Redevs​ , thank you for reaching out -- the blue sphere you're seeing is a shader-based gradient skybox that's part of our environment lighting system. It's applied by default when you load a level.

This is controlled by two components on the level root entity:

  • DomeGradient — the visible background (the blue sphere you're seeing)
  • IBLGradient — the image-based lighting for realistic material reflections

To disable both the background and lighting:

const world = await World.create(container, {
  render: {
    defaultLighting: false,
  },
});

To keep the lighting but remove the visible background:

Option 1 — Via Meta Spatial Editor: Check if you have an entity named "level" in your project. If so, you can remove or tweak the DomeGradient component on that entity directly in the editor. If you don't have a "level" entity yet, you can create one and name it exactly level — its components will automatically be applied to the level root at runtime.

Option 2 — Programmatically:

const root = world.activeLevel!.value;
root.removeComponent(DomeGradient);

This way your scene will still have IBL lighting for proper material appearance, but without the rendered sky dome.

More details on customizing environment lighting (including using HDR skyboxes or the built-in "room" studio lighting) can be found here: https://iwsdk.dev/guides/05-environment-lighting.html

RedevsAuthor
New Participant
December 6, 2025

Makes sense, will try this, thanks!