Spectator Camera v2.2 - 360 photos, selfies, and more!


Hi everyone! A brand new Spectator Camera v2.2 arrives with the release of Beta 68! It’s available in the High Fidelity Marketplace as a certified app here.

I’d like to share some of the Spec Cam’s new features with you:

  1. You can now take a Snapshot from the point of view of your Spectator Camera using your right hand controller’s thumbstick/thumbpad, or from within the app itself
    • This means super easy selfies :grinning:
    • There’s also now a toggleable flash on the front of the camera - perfect for taking selfies in dark areas!
  2. You can now take a 360 Snapshot from the point of view of your Spectator Camera
    • Here’s an example of a 360 Snapshot that I took using the new Spectator Camera: https://kuula.co/post/7lBGw
    • If you’re feeling extra creative, these 360 Snapshots can be used as skyboxes or portals.
  3. You can now change the Field of View of the Spectator Camera
    • This means you can zoom the Spectator Cam’s view in and out.
  4. The Spectator Camera app has been completely overhauled with a beautiful new UI
  5. The Spec Cam app can now be used in Desktop Mode
    • This means that you can take Still Snapshots and 360 Snapshots from within Desktop mode.
  6. The Spectator Camera app is now a Certified App
    • This means that you can now get it from the Marketplace and have it show up in My Purchases.

Here’s what the new app looks like:

Of course, you can still use Spectator Camera v2.2 alongside tools like OBS Studio to record and stream video from within High Fidelity. The old app will be removed from the Marketplace shortly.

I’m so excited to see what kinds of new content you all create using the new version of Spectator Camera!


Seems to be a nice new feature here. I have not played with it much yet but is there a way (without moving your avatar from near the scene/spectator cam) to make your avatar invisible when taking a 360 snap to be used as a zone snapshot?


This will be a very plus value for ambient of our zones.


Sounds cool, unfortunately my interface crashs always when I try to take a 360 picture :disappointed_relieved:


Very useful features!
I’m going to seize the opportunity to ask about portals:

I want to have different portals in a space, but even though I create a dedicated zone to the portal, when I am far from it, it reflects the general skybox/ambient light, not the dedicated one.

Probably these images are self-explanatory:


The ambient skybox color is currently defined for everything depending on the location of the avatar. There currently is no compartmentalization in, unfortunately.


I’m pretty sure I’ve seen some portals around with different skybox, in the Welcome space maybe (?)


Those usually have a texture applied to them instead or are using a shader. You can also have a separate skybox from ambient skybox, but the ambient skybox is always defined by the location of your avatar


You can also have a separate skybox from ambient skybox

What do you mean? Do you mean as a skybox in the zone entity or something different?

I just want my portal spheres to reflect different skyboxes or a workaround to achieve it, do you think applying the 360 image as a texture would work? In the old tutorial the portals where reflecting ambient light, that’s why I was following that path.


These features are well welcome
but really these should be not part of the market this should be in the interface

please make sure you do this for future purposes as this will cause problems @zfox

it just crashed on me on desktop I was just taken a snap and it has copied it itself

after forcing it closing down

it does it on the 360 as well just locking up second go still locks up here

it seems fine after the first crash

after deleting settings things seem to be okay but may be of the scripts are crushing it

we really need resizing of the pictures not relying on the interface size all the time

Users should be allowed to be put in what size they want

I think this needs redesigning it’s about time we had an open conversation about this as a community

I will keep messing around with this and give some proper feedback as I already do but I think it’s about time we took this seriously


Thanks for your comment! You used to be able to set MyAvatar.shouldRenderLocally = false from the JavaScript console to make your avatar invisible to you (and the Spectator Camera), but it appears as though that API functionality is not currently working. I’ve opened up an ticket internally for us to restore this functionality so that you can easily become invisible while taking Spectator Camera Snapshots.

In the meantime, you could use an invisible avatar mesh, or, as you say, step out of the frame.

Personally, I’ve always moved out of the frame when I don’t want my avatar visible in my Snapshots - sometimes, I’ll turn off my avatar collisions and sink through the floor momentarily. :slight_smile:


I’m very sorry to read this (and to read about Spec Cam crashes that others are experiencing)!

There’s an active ticket about this internally. We’ll investigate these crashes further.


To @Skimi, @M.L, and others encountering crashes: I have just submitted a Marketplace Item Update to Spectator Camera v2.0. Spectator Camera v2.1 should fix the crash issues you’re encountering. Please update your apps! :slight_smile:


great work @zfox! Thanks for this and your fast :zap: reply - this is a great new feature! :slight_smile:


There is definitely something wrong with the shadows with this camera.

Here’s a screenshot of the scene:

Here’s what the camera returns:

Some shadow are rendered from nowhere.

You can go test here:


I noticed this bug across earlier versions of Spectator Camera as well - it started happening as soon as the Shadows feature was released. I’ve talked to our rendering team, and they’ve confirmed that shadows don’t work correctly in the Spectator Camera for now.

If you’re in an area with shadows, you’ll have to disable those shadows before using Spectator Camera for the scene to look right. I’m discussing a fix for this with the team.


I mentioned at the Community Meeting today that I’d share how to change the size of the Snapshots that you take with Spectator Camera. This not an operation officially supported by the Spectator Camera app, so it might cause instability, especially at super high resolutions.

After turning on Spectator Camera, paste the following into your JavaScript console (CTRL+ALT+J), replace what’s in brackets with whatever you desire, and press enter:
Render.getConfig("SecondaryCamera").resetSizeSpectatorCamera(<x dimension of output image>, <y dimension of output image>);

After you do that, the next Still Snapshot that you take will come out with your desired dimensions. Those dimensions will stick until you either resize your Interface window, or turn off Spectator Camera.


Can the forum support the 360 images ?


I tried to upload the 360 photo directly on facebook, but they are not able to recognize it as a real 360 image and I had instead to go publishing on kuula. Is there something to be fixed for it to be natively acknowledged by fb?


@Judas I don’t think you can upload a 360 photo directly to the forums here, but Kuula has a really nice player. It embeds well on Twitter; I haven’t tried embedding one here. Here, let me try!

Edit: Looks like the embed code doesn’t work here on the forums. A link will have to do, I suppose: https://kuula.co/share/7PYNW?fs=1&vr=0&thumbs=1&chromeless=0&logo=0

@claudio.pacchiega I’ve noticed that too, and it’s really annoying. It seems like Facebook sometimes recognizes 360 photos (based on their dimensions), and other times requires specific metadata to be embedded in the photo. For example, I’ve noticed that the mobile Facebook app is more relaxed about what it recognizes as 360 images.

When I’m uploading a 360 photo to Facebook from Desktop, I will preprocess it using Exif Fixer: http://panoramaphotographer.com/software/exiffixer/

I wish steps like these weren’t necessary, but I suppose that’s part of the price we pay for being early adopters of new tech :slight_smile:. I’ve looked into embedding the metadata from within Interface, and it’d require a third-party library, which is more effort to implement than I can swing for now. :blush: