Posts by Lux

What it means to develop in the open

- by Lux

By John Luxford, CTO & Cofounder - Flipside

Developing in the open means taking the open-source concept of release early, release often and applying it to a commercial product. It means updating users frequently and transparently. It means showing your unfinished work, listening to and learning from your users, and adapting to their feedback.

For us, it meant putting a Flipside Studio update out on average around twice per month since launching into Early Access in March, 2018. That’s a lot of updates.

Some updates are just a bunch of bug fixes. Others include new features or new sample content to show what’s possible with Flipside. And often, we’re balancing Flipside updates with other things that help keep our company afloat, such as helping our customers with various aspects of their shows.

Why we chose to develop in the open

In hindsight, I’m not sure we had a choice. Flipside is a really big idea (and nowhere near being fully realized yet), and to get from here to there at some point along the way you have to have something to show. A product for people to use. Preferably one they find valuable today, even if you know it’s still just one part of some larger vision.

So when we felt we had an MVP of the first usable part of that vision, we put Flipside Studio out into the world. Followed a few months later by the second part of that vision, our Flipside Creator Tools plugin for Unity.

While we’re often thinking years ahead when we think of what these products are going to grow into, it takes discipline to ground yourself in what it does for users today. Having a community of users tell you what they think of your stuff is a great way to get grounded to the reality of providing tangible value today.

We didn’t know how hard it was going to be

I’ve run various open-source projects over the years, and I still maintain a few smaller ones on the side. So I knew users can be brutally honest.

But it’s harder to take that brutal honesty when you also know it’s going to take a long time to be able to satisfy their wants or needs, and that’s closer to the reality of Flipside than my past open-source experience.

Open-source users can also sometimes fix things themselves, so there's often less need to do everything yourself. And most open-source software is a volunteer effort.

But the big reason things take longer with Flipside is in large part due to the fact that it is an order of magnitude harder to make a multiplayer virtual reality TV studio than it is to make your average web app (Flipside has an extensive web back-end, too).

Taking feedback

Feedback is an interesting beast. It's often terse, even when it's not harsh. Many people prescribe a solution without fully describing the problem they're having. Many people ghost after the first terse suggestion, leaving no opportunity for clarification. And feedback is inherently given without knowledge of your other goals or long-term vision for your app.

But without taking feedback seriously, your long-term vision is almost certainly going to be out of touch with reality. So it's very important to listen carefully. It's also very important to drill down to root causes and assimilate the feedback with the larger context you have for your app.

Doing so will mean the difference between tacked-on features and features that fit more coherently over time. That doesn't mean they'll be perfect out of the gate, but they'll make sense in the context of both your users' goals and your own.

Fostering community

Fostering a community around your software is time consuming work. It can also conflict with other areas of your life, especially for an app like Flipside that many people are only going to use outside of 9-5 hours.

We've also made a lot of mistakes in that process. We scattered our community across various social media sites. We provided a roadmap that users couldn't contribute to. And when the team gets too busy and starts to feel overwhelmed, we tend to drop off in community participation. And the truth is, you have to be present in your community or it says you don't care.

The key is to learn from your mistakes and find better tools or processes. Like encouraging a centralized place for the community to chat on Discord. Or using Trello for our roadmap so users can make suggestions, comment, and vote.

Not everyone on your team is going to want to participate in the community, for a variety of reasons, and forcing them to do so isn't going to work. It can also seriously impact their productivity in other areas. But it's super helpful for users to know they can @mention or DM one of us for help and we'll at least get you in touch with the right team member.

For our team, we're too small to have any one person dedicated to community management (along with social media, marketing, and the umpteen other hats we regularly share), but we try to make sure one or two of us are regulars on Discord, and we make a point not just to get back to people, but also to champion our users and their creations whenever we can through our social media.

How developing in the open made our app better

Users see your app differently than you do. They see it strictly in terms of its usefulness to them. At various times, you might see your app as everything from your baby, your livelihood, your dreams, or that thing that won't let you sleep. But none of that makes your app better. It only clouds your ability to see your app for what it truly is.

Users, on the other hand, know what they want to accomplish through your app. And we're just fortunate enough that some will tell you when it isn't working for them. Good app design isn't about getting your users to do something you've designed for them to do, it's about helping them do something they want to do.

It's a small distinction, but there's an important lesson in it: The best user experience is one where the user is able to forget about the tool and just do the thing.

As a developer, it's tempting to think that that makes your job less rewarding, that your work being less visible diminishes it, but that's not true. The output of your users is what your app makes possible, and that's a stronger source of inspiration anyway.

Users being honest keeps you seeing your app clearly. It keeps you honest with yourself about your app. That's why even though users being brutally honest is one of the toughest parts about that relationship, it’s also one of the best parts. Your app and your business need brutal honesty, and you’re often less likely to get it from someone the closer they are to you.

So while it’s been hard at times, it’s also given us a steady push that has allowed us to watch our app take shape in ways it never would have without them. That’s something special.

In retrospect, I don't think we could successfully develop Flipside in any other way, and we're very grateful for our community, their encouragement, their honesty, and their patience. We're in it for the long haul, and we're going to need the ongoing support of a community not to burn out along the way.

Here's a little video reel we made to celebrate what our amazing community have been creating in Flipside:


Flipside Update #30 - Save your setups

- by Lux

Please note: This update is only available for those who are part of our multiplayer beta. If you're looking to collaborate on a show or just want some of the other goodies, sign up for the multiplayer beta here. We're working hard to quickly get these updates back into the general release branch so everyone can enjoy them, but that's still an update or two away.

Save your setups

Save multiple versions of your setup of any set, letting you jump back to that configuration at any time.

To save a setup, look on the underside of the Sets or Set Builder palettes and press the Save Setup button.

To go back to a saved setup, go to the My Sets category of the Sets palette and grab the setup you want to restore.

A saved setup consists of:

  • The set
  • The sky
  • Prop placements
  • Actor marks
  • Camera placements
  • Slideshows, teleprompters, and other show tools

Smoothing on all characters

Previously, Flipside Studio would smooth movement on playback and for remote users over multiplayer, but not for the local user. This lead to jittery movement in live streams.

With this update, all characters have the same smoothing applied, regardless of where they came from.

Other fixes and improvements

  • Set configuration storage was overhauled to fix cases where the settings could be too large (e.g., on sets with many props)
  • Fixed multiplayer prop interactions when multiple users are in ghost mode
  • Desktop switcher usability and consistency improvements
  • Added support for Google Drive's new shared link format in slideshow links
  • Fixed cache path name conflicts in Google Drive slideshow links
  • Fixed animations not always getting triggered on playback
  • Fixed highlighting on UI visibility and ghost mode buttons on both camera switchers
  • Fixed cartridge finishing loading when inserted while syncing in the background
  • Improved snapping of objects to surfaces in Set Builder mode
  • Fixed issues with ghost mode over multiplayer
  • Improved timing calculation for remote user data in host recordings
  • Privacy and security improvements in our API


Flipside Update #29 - Background sync, thumbs, fingers, and more

- by Lux

Please note: This update is only available for those who are part of our multiplayer beta. If you're looking to collaborate on a show or just want some of the other goodies, sign up for the multiplayer beta here. We're working hard to quickly get these updates back into the general release branch so everyone can enjoy them, but that's still an update or two away.

Background sync

Since we've spent more time doing larger productions, we discovered that a lot of time is wasted just waiting for a new take to upload to the cloud. When you have 5 people in VR, that wasted time adds up for everyone.

For that reason, we built a new background sync feature so that you're free to keep creating while your previous takes sync up quietly in the background. You can even continue to play them back, add roles, and star them too. It all syncs up in the end.

Thumb and finger improvements

Today's update improves how thumbs sit in an idle state to make them feel more natural. We also fixed a bug that was overriding the spacing between fingers, so now you can adjust your finger spacing to feel more natural for your characters in your model's Avatar Mapping settings in Unity.

Note that this is one part in a series of improvements we're making around more natural hand movement and interactions.

Multiplayer reliability improved

We made a big improvement to our multiplayer back end that should improve reliability for those users who were previously having trouble connecting. Even if you can't connect directly via peer-to-peer, you should automatically be connected through our new low-latency global relay service.

Other fixes and improvements

  • Fixed a bug causing characters to appear small when switching from Ghost mode into a character.
  • Added a fade to the tunnel effect when rotating the world in Ghost and Set Builder modes.
  • Fixed a bug causing character changes not to work on playback.
  • Fixed a bug causing props not to appear over multiplayer when one user is in Set Builder mode and the others aren't.

Flipside Update #28 - Take a seat

- by Lux

Please note: This update is only available for those who are part of our multiplayer beta. If you're looking to collaborate on a show or just want some of the other goodies, sign up for the multiplayer beta here. We're working hard to quickly get these updates back into the general release branch so everyone can enjoy them, but that's still an update or two away.

Characters can sit on chairs

Characters now have the ability to teleport into chairs and be positioned correctly. The teleporter will snap to the chair to indicate a seat you can sit in. This works whether you're physically standing or sitting. Your head height will be adjusted so your character is in the correct sitting position.

It also works regardless of the character size, so tiny characters will automatically adjust forward and their legs will dangle off the seat, and large characters will adjust to squat in smaller seats. 

Sitting currently works with the built-in prop chairs, but most seats you see in sets won't work until the sets have been updated with our new Chair component in the latest version of the Creator Tools. The Chair component will let you that. 

Note that there may be issues with the bone structure of certain characters that makes them sit incorrectly. Reach out in our Discord community if you need help fixing one of your characters.

Teleport to actor marks

Actors will also see the teleporter snap to actor marks as well as to the new TeleportTarget component in the Creator Tools, so you can create snap points anywhere you like that actors can instantly snap to with their feet and head pointed in the right direction for the shot.

Star takes to keep track of the good ones

We've added the ability to star takes that you want to keep track of. Press the star button and you'll see a star icon appear on the cartridge and on the back panel when the cartridge is loaded.

You can also click the star icon when you're browsing your takes to toggle between all takes and only the ones you've starred.

Guests now see each other in the collaboration sidebar of the Friends panel

Guests can now see the same list of connected users that the host could see, so everyone can see who's in the scene together, and also have the ability to disconnect themselves.

Smooth world rotation in build and ghost mode

Previously, when you rotated the world with two hands in build or ghost modes, Flipside would snap the rotations every 45 degrees to keep users from feeling simulator sickness. Thanks to VR Tunnelling Pro, we're now able to offer smooth world rotation, which we feel is a much improved experience.

Other fixes and improvements

  • If a new character or set has been uploaded to the dashboard, you can now select it in Flipside Studio and it will reload the updated version from the server.
  • Switch desktops in the Desktop Mirror by triggering events in the Creator Tools.
  • Prop elements built into sets remember their positions between sessions when they're moved around.
  • Fixed a bug that could render takes unplayable if a take is removed while it's loading.
  • Fixed a bug that broke the Play button on the in-VR camera switcher.
  • Fixed a bug in grab interactions in ghost mode playback.
  • Fixed a bug that was reducing the slideshow audio volume.
  • Fixed a bug that was throwing the teleprompter out of sync in multiplayer.
  • Fixed button presses over multiplayer for ButtonElement components in the Creator Tools.
  • Fixed issues with props being held at start of playback for multiplayer users in a recording.
  • You can now start recording a new role midway into a take's playback instead of always starting at the start. The character will pop in at the time you started recording.
  • Several performance improvements.

Flipside Update #27 - Character improvements, reduced save times

- by Lux

Please note: This update is only available for those who are part of our multiplayer beta. If you're looking to collaborate on a show or just want some of the other goodies, sign up for the multiplayer beta here. We're working hard to quickly get these updates back into the general release branch so everyone can enjoy them, but that's still an update or two away.

Character improvements

We've made several improvements to our characters this round:

  • Improved eye movements, which could become too exaggerated on some characters.
  • Reduced arm stretching to feel more subtle.
  • Added slight stretching to legs to reduce instances of feet raising off the floor.
  • Improved hand positioning and feel.

This is the first part of a series of character improvements that we have in the pipeline. We will continue to release improvements as they become stable.

Other fixes and improvements

  • Fixed re-downloading takes right after they're uploaded, cutting save times by over 50%.
  • Fixed slideshow incorrectly playing first video on playback.
  • Fixed a mouth movement regression in the Flipside Creator Tools. Click here to download the updated version.

Flipside Update #26 - Multiplayer improvements

- by Lux

Please note: This update is only available for those who are part of our multiplayer beta. If you're looking to collaborate on a show or just want some of the other goodies, sign up for the multiplayer beta here. We're working hard to quickly get these updates back into the general release branch so everyone can enjoy them, but that's still an update or two away.

Multiplayer improvements

With this update, Flipside's multiplayer connection routing is now using an all-new backend that will automatically scale to handle larger numbers of users, and does a better job routing peer connections through firewalls.

Microphone input fix

We fixed a bug in our microphone input that affected a few of our users since the last update which caused input to fail and lip syncing to stop working.

Note: After this update, if your microphone is not picking up or the lip syncing isn't working on any characters, click the settings icon in the bottom of the desktop camera switcher, then go to the General settings tab and select the correct microphone input device. Flipside should remember your input setting after that.

Bug fixes and other improvements

This update contains a number of smaller changes too:

  • Fixed camera cutting over multiplayer.
  • Hosts now share their teleprompter script with guests when they connect over multiplayer, just like their slideshow slides.
  • Fixed a teleprompter controller button issue causing buttons to press twice.
  • Fixed resetting PropElement objects (props that are built into sets) on resets.
  • Added a ResetProps() option to the FlipsideActions component in the Creator Tools so set designers can trigger scene resets through custom interactions.
  • Fixed a case where set configurations weren't being updated for guests joining over multiplayer if the guest was already on the same set.
  • Added missing neutral blend shape setting to the Creator Tools.

Flipside Update #25 - Multi-monitor desktop mirror, microphone input setting, and more

- by Lux

Please note: This update is only available for those who are part of our multiplayer beta. If you're looking to collaborate on a show or just want some of the other goodies, sign up for the multiplayer beta here. We're working hard to quickly get these updates back into the general release branch so everyone can enjoy them, but that's still an update or two away.

Desktop mirror multi-monitor support, embedding in custom sets

The desktop mirror feature that lets you bring your desktop view into Flipside now supports multiple monitors via a setting in the General settings tab.

It can also now be embedded directly into your custom sets using the ScreenElement component. This means you can do things like build a computer into your set whose screen reflects what your actual desktop is showing. Pretty neat stuff!

Note: You'll need to update to the latest version of the Creator Tools to see the desktop mirror option in ScreenElement.

Switch microphone inputs in the General settings menu

Tired of restarting Flipside to switch microphone input devices? Now you can switch in-app by clicking on the settings icon on the bottom of the desktop camera switcher, going to the General settings tab, and selecting your Microphone Input Device from the list. Change should happen automatically when you select a new one, and your preferences will be remembered for next time!

Bloom filter

We've added a setting to enable our first filter effect, Bloom. You'll find it under the settings icon in the desktop camera switcher under the Output tab, alongside the OBS settings.

Bloom Off
Bloom On

Use the slider to compare a shot from our Winter Cabin set with bloom on and off.

Other fixes and improvements

  • Slideshow waits for first "next" to play if first slide is a video.
  • Fixed UI layered-elements on characters so they stay on the UI layer.
  • Fixed slideshow and teleprompter bug that caused a VR headset to appear at (0,0,0).
  • Fixed teleprompter save errors.
  • Fixed issue with position resetting when jumping back into a character and placing you on the ground on sets with no NavMesh.
  • Fixed error disconnecting all users at once.
  • Fixed issue with correct playback when adding additional parts to a recording.
  • Fixed issue with Unity timelines restarting properly on playback.
  • Fixed issues with Ghost mode and mode switching over multiplayer and in playback.
  • Ghost parts are now shown as ghost cards on the recordings palette.
  • Renamed "Creatures" character category to a more general "Fantasy", matching sets.

Flipside Update #24 - Ghost Mode and a ton of bug fixes

- by Lux

Please note: This update is only available for those who are part of our multiplayer beta. If you're looking to collaborate on a show or just want some of the other goodies, sign up for the multiplayer beta here. We're working hard to quickly get these updates back into the general release branch so everyone can enjoy them, but that's still an update or two away.

Go invisible with Ghost Mode

You'll find our new Ghost Mode button on both the desktop camera switcher or the in-VR camera switcher. This will make your character invisible so you can play director without getting in the way of the shot, or animate props by grabbing them and moving them around. Ghost Mode also has the ability to move the world around and scale it up or down by grabbing it with one or two hands, just like Builder Mode.

Clearing sets got a little safer

It takes work to get a set setup exactly how you like, and it should be hard to accidentally undo all that work. That's why we've added a confirmation step whenever you use the "Clear All" and "Reset to Original" buttons on the underside of the Sets palette.

Additional bug fixes and improvements

We've also made lots of smaller improvements throughout the app. These include:

  • Added whitelist of components allowed to be used on sets and characters.
  • Improved foot distance calculation to fix bow-leggedness.
  • Fixed cases where imported props that were deleted online could cause a set to fail to load
  • Fixed "clear all" and "reset to original" on sets over multiplayer
  • Improved error handling when a sky is not found
  • Auto-retries multiplayer connections if disconnected unintentionally
  • Clear sent invites when you leave Flipside to prevent stale invites being received
  • Fixed order of notifications so most recent invites appear at the top and new ones appear at the top as well
  • Fixed recalling menu with the right hand on Vive returning it near the left hand
  • Disabled menu show/hide on Oculus running through Steam so teleprompter controls can be used
  • Handheld camera remembers its direction between uses
  • Active camera light working over multiplayer
  • Fixed issue with 360 video uploads generating black previews and thumbnails
  • Fixed issue preventing interactions from recording on larger sets
  • Fixed issue with OBS settings storage
  • Fixed issue with changing sets with a recording inserted causing the new set not to fully load
  • Fixed Twitch chat panel being ungrabbable and made in-app instructions clearer
  • Moved Twitch chat panel to UI layer like the other Show Tools
  • Fixed issue with unloading a recording cartridge while still loading
  • Fixed link to YouTube videos in slideshow
  • Various performance optimizations


Flipside Update #22 - Seeing yourself and beta bug fixes

- by Lux

While this is primarily a bug fix update for our multiplayer Beta branch, we did sneak one new feature in:

See your character while acting

When in character, you'll now see a ghost-like outline of your character, so you can see exactly where your hands and body are positioned. Here's what it looks like.

We experimented with a lot of possible solutions to this problem, which was made a lot more complicated by the fact that we don't control how most of our characters are made. Other solutions like just showing your body directly would fall apart with larger characters like our elephant, whose trunk being visible got in the way of seeing what you're actually trying to do.

This solution should work automatically with all custom characters, but if you spot any that don't work well, let us know on Discord. This is also the first step towards more improvements we have in development for characters.

Bug fixes and improvements

We also made the following bug fixes and improvements that should make things feel better across the board:

  • Flipside no longer waits for everything to load before you can begin
  • Improved caching of texture images
  • Improved Vive tracker support
  • More error checking when importing custom props
  • Improved collisions on hands in playback
  • Fixed switching sets in director mode
  • Fixed hand issue when switching in and out of puppet mode
  • Fixed various issues with imported cameras
  • Improved foot orientations for some custom characters
  • Improved behaviour of grabbing objects
  • Improved placement of feet using hip width and leg length

For details on what we're working on next, check out our roadmap!


A look back at 2018 and a look ahead

- by Lux

This month marked our 20th Flipside update of 2018, which included our much-anticipated cross-platform multiplayer feature, letting you create content together over distance.

That many updates feels crazy enough on its own, but it's also been one crazy year all-around. We started 2018 just getting Flipside ready to submit to the app stores, and we ended up accomplishing a heck of a lot since then.

A few highlights

We made a music video for Del Records artist T3R Elemento's single En Menos De Un Minuto, which reached 20M views this month!

Flipside was used live on stage more than a dozen times this year, first with Jasper de Tarr from Raktor being a guinea pig for our Mixed Reality support, followed by our CTO Lux's TEDxWinnipeg talk about how avatars are changing our sense of identity, then with acting duo Stephen and Caity in their Pixels live animated improv shows at the Winnipeg Fringe Festival and Winnipeg Improv Festival.

Flipside Studio was used to make a 30 minute show with the team at Tell 'em Steve Dave for their Patreon subscribers.

Bobjenz, one of our users, teamed up with Roblox for this year's Ready Player one release.

Josiah Brooks of Draw With Jazza created an animated short film titled "Sexy Benjamin" using Flipside.

And our list of custom characters is now over 125 strong and our list of custom sets is over 75 strong and growing all the time, thanks to prolific creators like Cybermynd and VRGameDevGirl.

To top it all off we were also nominated for VR Innovative Company of the year at this year's VR Awards held in London.  It's been an amazing year and it will only get better in 2019.


Looking ahead

Looking ahead, 2019 looks to be just as crazy. We have new shows in the works, new partnerships we're looking forward to sharing with all of you.

We have a ton of ideas, many of which come straight from our users on our roadmap, and a ton of polish to add to Flipside in order to make it the truly stand-out live animation platform it's quickly growing into.

We couldn't be more proud of how far we've come, and while we're looking forward to some rest over the holidays, we couldn't be more excited for what's to come!

Wishing the Flipside community a warm and happy holidays until we meet again on the Flipside in 2019.

The Flipside Team


« Newer posts

Older posts »