Changelog

🚀 Improvements

  • IP address text reads more clearly
  • Starting a streaming session with a machine is now more straightforward
  • Reworked the different permissions for our files systems
  • Added a new set of default parameters for our file systems

🐛 Fixes

  • Attaching and detaching fixed ip access the correct region
  • Fixed a bug that was not displaying the right description for workstation groups
  • Fixed a bug that would reset the max number of workstations in a workstation group when shutting it down
  • Fixed a bug that would stop people from using Reemo with a new environment
  • Fixed a bug that was causing auto-refresh on some input’s modal in the web-app
  • Fixed a bug that would let you shut down a starting workstation
  • Fixed bugs related to our fixed-IP cross sell option
  • Fixed bugs that would prevent user from uploading and downloading some files in certain regions

📹 Tom’s Streaming journey

This sprint formed an inspiring internal milestone for the streaming technology at Flaneer! The hole-punching server built a few sprints back has had some improvements made so that it can be permanently left online.

Mostly the changes were around making the hole-punch server resilient to erroneous server states, for example, adding a heartbeat to the system to remove server nodes that have exited without notifying the server (rude!).

The server is only for internal usage only at the moment, however, we’re still really excited about what it means for the future of our protocol. Since we now have some permanent infrastructure we can start to plug it into the Flaneer services.

So the next few updates should hopefully centre around how the protocol is starting to become more integrated into our production environment, so stay tuned!

Hi everyone,

Here are some improvements and fixes we've made for this third sprint of the 2023 year !

🚀 Improvements

  • We added new options for our files streaming protocol. You can now optimize it for either large files, or for fast collaboration.
  • We optimized our files streaming protocol to get automatic directory refresh even with deep nested structure.
  • We made it possible for AWS users to buy Flaneer on the AWS marketplace. It should be public very soon.
  • We now run a script before creating an environment to fully clean the workstation.
  • Removed the possibility to upload file from NICE DCV.

🐛 Fixes

  • Fixed a bug that were causing some Reemo connection to prevent our cloud files from being mounted.
  • Fixed a bug related to our script initializing the windows settings of a user.
  • Fixed a bug that was displaying some impossible functionalities for external files system

📹 Tom’s Streaming journey

This last sprint we decided to finally get stuck into some image code and fix a recurring issue we have had with image quality.

There has been a persistent problem with how we handle the encoding settings leading to heavily distorted images on “bad” frames (i.e. no all frames but when they go wrong they go really wrong).

However, the issues that have come up in previous changelogs (memory management, tools, etc.) have seemed more challenging so we haven't been addressing the major problem. During this sprint the code base has been looking great, so we had a chance to turn again to the image quality.

The nice thing about that is the results speak for themselves. Essentially what you’re seeing in the image with the fish is that the encoder stops encoding pixels at the same quality after a certain point and just fills the rest of the space with extremely compressed data.

However now after spending some time experimenting with encoding settings (and writing a small test program to generate test images and iterate as fast as possible) a bad frame now looks like this:

There is still a lot of artifacts in the image, but they’re spread out in a much better way and they are more content aware, instead of just chopping of several rows of the image the high compression is restricted to the darker portion of the image.

Hi everyone,

First of all, happy new year from the whole team! May this year brings you joy, health and success in your creatives projects! 🥳

Here are some improvements and fixes we've made for this first sprint of the 2023 year:

🚀 Improvements

  • When launching a session for the first time, the right screen resolution is applied
  • We now separate our default templates for G4 and G5 instances
  • SSD size is now visible during the loading screen
  • The state of the machine is now visible during the loading screen page title

🐛 Fixes

  • Fixed a bug that would cause file systems to keep being mounted from one session to another
  • Fixed a bug that would cause Reemo to not be properly installed if multiple installations occur at the same time
  • Fixed a bug that would cause an issue with the size of Flaneer’s cookies when using multiple accounts

Hi there!

Here are the major improvement we made for this year-end sprint 🎄:

🗣️ Workstations now fetch the user language and timezone to apply them to their machines.

This means no more inconsistencies in language or location.

We also upgraded all of our base templates for a better experience!

🐛 Fixes

  • Fixed a bug that would cause the workstation creation flow to fail when too many templates are present
  • Fixed a bug that would stop people from uploading and downloading files in their file systems
  • Fixed a bug that would lead workstation to not have their file systems mounted
  • Fixed a bug that would let workstations run indefinitely

📹 Tom’s Streaming journey

This sprint has been all about pooling resources! As we move from the R&D code to production there are certain things we need to start doing better. One of them is memory use. While the code is in development we can just use memory as we want, however when our code starts getting into the hands of our users we don’t want to be rude and use all of their RAM. Not only that but memory operations are pretty slow when trying to do something 60 times a second. Enter pooling, pooling resources is a great way to use memory more efficiently, instead of allocating the memory every time we now allocate a big chunk of memory and reuse it when we’d normally throw it away.

As I promised in the last change notes here's a peek at some of the memory benchmark results. Previously when a frame was buffered in the worst method it would use 26562 B of memory. Now we only use 1112 B! See this table below showing memory allocated in each of the methods a frame goes through when it is received.

We implemented a new loading screen version, displaying the machine specs as well as the protocol streaming it uses.

💎 Improvements

  • We now ask for first name and last name during sign up
  • We implemented a beginner checklist on new sign up, to ease the onboarding
  • We now use a new service manager for our file streaming protocol
  • We extended our files functions to all files systems
  • We now display a warning when you are using a bad internet connection
  • We now set automatically the best bandwidth available while streaming

🐛 Fixes

  • We fully refactored our payment system backend infrastructure
  • We now use a new library to update our databases
  • We fixed a bug that would cause the renewal of fixed IP to attach a new IP

📹 Tom’s Streaming journey

After having to work on some other projects for the last few sprints, I got a great chance to lay the foundations of the next few sprints by setting up some benchmarking.

To do this, I used the great C# library BenchmarkDotNet. The key thing that we are trying to establish is an in depth analysis of the current performance. Whenever you’re trying to improve the performance of something, what can often happen is in the excitement of making something go fast, you forget to work out how fast it is already going. Whenever you’re working on something like performance increases, it is important to be brutally honest with the results. Benchmarks now allow us to do that.

Ultimately, really wanting the code to be faster won’t make it faster (which is unfortunate). Another factor is that when you are breaking something apart and rebuilding it faster, maintainability might become worse, this is a great tradeoff for a 2x speed-up, but is a 1.05x speed-up worth it?

We’re really looking forward to sharing some of the performance increases in the coming sprints, but for now I’d recommend taking the time to write some benchmarks alongside your unit tests!

A new loading screen 🖥️

We are currently working on a new loading screen for our workstation.

Feel free to send us a message about what you think and if you have any feedbacks 🤠

💎 Improvements

  • Add more transparency about sales taxes
  • Users can now directly see the workstations they just created, even while payment is still processing
  • Users can now directly connect to their workstation even if they are just starting !
  • Virtual Workstations that do no have a GPU now use NICE DCV by default, to ensure a better user experience !

⛳ Multi-Region Workstation Groups

We now offer multi-region workstation groups. This means that if you have large needs, let’s say 1000 cloud workstations with top-notch NVIDIA GPU, we can balance that easily (and we load-tested it 😉) in multiple regions.

You will be able to access 200 machines in Paris, 500 in Dublin, and the remaining ones in Frankfurt!

This opens tons of new possibilities for us and our customers:

  • Super reactive Disaster Recovery Plan in case of cyber-attack
  • Playtest all across the world for the new beta of your game
  • and much more!

⭐ Improvements

  • We now allow for all USBs to be connected to our workstations using NICE DCV
  • We now store our user’s files in the same region as their first workstation’s region!
  • We now re-mount users’ files systems, even after a windows restart
  • We now manage our workstations balancing only at creation and deletion, not each start and stop!

🐛 Fixes

  • Fixed a bug that could cause multiple File Systems streaming to cannibalize each other
  • Fixed a bug that would let NICE DCV send logs while Reemo was used
  • Fixed a bug that would let the new organisation get all our templates as default Environments

Hi there !

This is our changelog v0.18.0, let's see what's new on Flaneer.

Here's a video which explain everything in details :

Streaming Protocol Switching

We added the ability to switch streaming provider. At the moment, we offer Reemo by default, and you can now switch back to NICE DCV. In the future, we intend to let users choose between multiple streaming protocole (including ours), to make sure we always deliver the best experience possible.

You can read more about experiments we did between multiple streaming protocoles here !

Improvements

We now display bar charts for each workstation group’s capacity. The goal is to be able to find in a glimpse if a Workstation Group is full or not.

We also updated permission accesses for Workstation group, to follow the rest of our new system !

  👉 Created 2 specifics Game Dev environment (Unity, Unreal)

  👉 We now show the size of the OS when creating a machine from a Flaneer Env

  👉 Add camera capabilities to Reemo

  👉 Improved the way we handle payment retries and card failures

  👉 Added a tooltip to display the Windows Version used

  👉 Added a tooltip to display who is connected to a Workstation

Fixes

  👉 Fixed a bug that would allow user to access our Cloud Files even without a subscription

  👉 Fixed a bug that would not assign you the closest region available

  👉 Fixed an issue that would cause Flaneer’s sign-up emails to go to spam

  👉 Fixed a bug that would change the minimum size of a Workstation Group

  👉 Fixed a bug that would not display the right IP addresses for workstation

Tom’s Streaming journey

The latest addition to the streaming tech at Flaneer has been implementing a method known as UDP hole punching to allow us to connect two machines without needing to configure the router. It does this by using a third server, called a STUN server, to allow the traffic to be brokered.

To understand how this works, we need to do a quick refresher on what the router does for you all the time. UDP traffic is sent and received via ports at addresses. If you imagine, an address is like your home address, and the port is like your name on the address. All mail is sent to the post box, and then individual people pick up the mail by looking at their name.

The issue is with a router you cannot put the name, you need to put a number and then the router maintains a database of where to send what IDs. This can be done manually using a process known as port forwarding (anyone who played Minecraft in a certain era knows about this!). The issue is, we can’t go round asking our users to do this for our streaming tech.

However, there is a cheeky trick! When you send data out of your home network, your router assigns you a temporary port (or id), UDP uses the range 49152 to 65535 to do this, they are called dynamic ports. That port is now registered to your machine, so if we can get that number to the other machine, we can “punch” traffic through the newly opened “hole” (I didn’t come up with the name…). This is kinda hard to picture without…. an image:

This is where the STUN server (On the image labelled as Rendezvous Server) comes in. This server has opened ports that can be accessed from anywhere to allow the traffic to flow in and out without restriction. The STUN server acts as a broker between client A and B and exchanges the dynamic port information so that the two clients can communicate freely.

🎉 A new permission system released

  • Gives Administrator a precise way to manage users access to Files, Workstations and Organization Management
  • Manage access to general and specific permissions (see an example below for instances)
  • Manage all general permissions in the Directory tab:

🖥

🖥️ General Availability of Reemo Streaming

  • New users will automatically use Reemo as their default protocol, allowing them to have a 100% web-based experience
  • Complete with Webcam, Microphone, Multi-Screen, Gamepad and Drawing tablet support

Improvements

  • Add an email checker when user are inviting others to their organization
  • Workstation Groups are now more reliable when starting
  • Add new regions in our custom region selector
  • Add an IPv4 and v6 checker when user updates their security rules

Fixes

  • Fix a bug that would cause issues when resizing a reemo streaming session
  • Fix a bug allowing users to have a 0min0sec timeout on their workstation
  • Fix a display issue with snapshotting workstations
  • Fix a bug that would lead our file streaming logs to eat the entire available disk space
  • Fix a bug that would not let users access their workstation after a combination of payment failure and success
  • Fix a bug that would allow users to stop a starting workstation

🌐 New region available for Asia/Middle East location

Not that much to say for this sprint, but one exciting news for people located in Taiwan, India or Bahrain:

It's now possible to create NVIDIA and General purpose workstation in Hong Kong, Mumbai and Bahrain !

For that, you just have to go to the creation workstation page, and select one of these location in the list !

📁 Users can now create and share file systems!

Use them like you would use and share Google Drive folders.

With one difference. Those file system are automatically mounted on any workstation you connect to 😀

🚀 Improvements

  • All organization now have access to a default share drive: OrganizationCloudFiles !
  • Reemo users can now use their webcam and their microphone

🐞Fixes

  • Fix the Flaneer logo in our sign up email
  • Fix a bug that would cause the duplication of the OrganizationCloudFiles at workspace creation
  • User can’t revoke their own admin rights anymore

✨ A new permission system

  • Completed the design and the ground work for the new permissions system. Which would soon be available to all users to easily manage access of various resources across the application.Implemented a new permission system for application resources. We removed our previous system of authorized groups and users, and switch to a more complete permission system. Select a resource (an entire division, a particular workstation, etc), and decide who can do what!
  • We implemented a new File System. User’s can now create Drives, choose who can access them, populate them with the assets they need, and they will be automatically mounted on user’s workstations. It now takes only a minute to give the right team access to the right assets, and another minute to let them work with those on their Flaneer workstations!

💎 Improvements

  • Improved streaming user experience over the browser. Added multiple configuration options to support low end connections at variable frame rates. This allows users to decide how they want their machine streaming quality
  • Newsbridge users will now be able to open a workstation directly on the right Premiere Pro project!

🐞 Fixes

  • Fix a bug that would cause user retrying their payment to not have access to their machines
  • Improve our API listing available workstations

📶 Tom’s Streaming journey

Sadly Tom was out of office those last 2 weeks !

✨ A new permission system

  • Completed the design and the ground work for the new permissions system. Which would soon be available to all users to easily manage access of various resources across the application.

💎 Improvements

  • Personas in our create workstation page are now up to date with our latest Images!
  • Workstations permissions are now more tailored for each of our users!
  • Organization cloud files can now be mount on any Windows Drive Letter
  • An email is now sent when our queue system succeeds in creating a workstation
  • Our backend function listing a user workstation is now faster and more reliable

🐞 Fixes

  • Fixed an issue with bulk reads and writes, preventing some users to be able to view the users in their organization.
  • Fixed an issue with our automatic retry queue system to launch workstations
  • Fixed the loader when people sign in with Microsoft SSO
  • Fixed some of our workstation type : welcome G5 and bye bye C5 !

📶 Tom’s Streaming journey

Very exciting post today! We can show a very early streaming test we have done recently.

There are obviously a lot of issues to iron out here, but it shows that the video streaming pipeline is up and running and ready to be improved upon.

✨ What's new ?

🎉  Users can now signup and login with Microsoft accounts

Microsoft can now be used to sign up/in, using the new invitation template or the old one

🖥️  Instance Type Update

Users can now update Instance Type of their persistent workstations in the workstation setting menu.

This lets you switch from a small machine to a high powered one with multiple GPUs in minutes !

💎 Improvements

  • Users encountering Insufficient Capacity issues during there Workstation startup had to try again and again manually. This job is now automatic
  • Windows is now properly turned off when a user stops a workstation
  • The workstation creation page now offers personas instead of templates
  • Users now have access to G5 workstations
  • Business customers can now fill in their VAT ID at checkout time
  • Users can now rename the mount letter of their cloud files
  • Users can now access an up to date documentation here

🐞 Fixes

  • Fix an issue where users could request a workstation in region where they were not available
  • Fix an issue where workstation’s display name where used for security identifications

Tom’s Streaming journey

This sprint I finally got to start implementing full video encoding and decoding, up until now we have only been sending key frames, whereas now we are sending key frames and predicted frames.

What does all that mean?

When we compress video, unlike images, we can use previous frames to determine what the next frame will look like. For Flaneer that means that only the bits of your desktop that have changed need to be sent. This can massively reduce the size of the frames being sent, take a look at this for example:

The first frame is over 10 times as large. For us, that means we can deliver the same high quality streaming experience in fewer pixels than before!

There is still work to be done before we can show anything major, but here is a sneak preview showing how better compressed video will send the same image in fewer bytes and fewer packets:

💡Fixed IP

You can now attach a fix IP to your Workstation! Using a VPN, a proxy, accessing data or software that needs to authorise your IP: we got you covered. It now takes 10 seconds to attach an IP you will keep for life!

🌟 Improvements

  • Our default templates are brand new: new Windows version, new streaming protocol, new softwares!
  • Our documentation is now up to date with our latest improvements. Visit them here!
  • Workstation’s IP address are now shown in their toolbar
  • Users can now select their region in the /create-workstation page!
  • We now uses less CPU to send analytics from the user’s workstation to our servers.
  • Users can now update their instance type on the fly !

🐛 Fixes

  • Fixed bugs related to the way we compute user’s idle time. We also set the new default idem timeout to 30minutes. This timeout is now block to 2hours max.
  • Fixed bugs to would consider user streaming on the browser as always active.
  • Fixed a bug to would cause the reset password function to fill a fake code.
  • Fixed a bug to would cause our full screen toggle to work poorly (or not at all on Safari).
  • Fixed a bug that would cause downloaded folders from the web-app to be empty.

💡Workstation Creation Flow

We made the workstation flow much faster, cleaner and overall easier to use. Say bye to our ugly modal we’ve had for the last year, say hello to a 2-steps flow.

Start by choosing the software you use the most:

  • Game Developper (Unity, Unreal, Visual Studio, etc)
  • Video Editor (Premiere Pro, Photoshop, etc)

and the select the specs you need. Start using your tailored machine in less than a minute. You need something else? That machine is automatically set-up in the closest server possible!

🌟 Improvements

  • Refund of 95% of workstation subscription if deleted less than 24h after first subscription
  • Easier way to turn on workstations
(Gif made on Premiere Pro on a Flaneer machine in the browser)
  • Billing and Help pages now open in a new tab

🐛 Fixes

  • Fixed a bug where adding a group to the workspace would empty the users
  • Fixed bugs with deleting a group and the group would not be removed from authorised groups of the workstation
  • Fixed a bug where creating a payment method before a workstation would result in a failure
  • Fixed a bug where users would not see the right tax collection amount during checkout
  • Fixed a bug where our Load Balancing System would fail during workstation deletion
  • Fixed a bug where Storage Size could be not compatible during workstation creation
  • Fixed a bug where reset password would fail
  • Fixed a bug where creating a Workstation would fail because of internal tags
  • Fixed a bug where deleting a workstation ,that not paid, before 24h would fail

📖 Tom’s Streaming journey

Most of this sprint for me was spent at MIFA, however I did get some time to implement a simple Ack system:

Acks (acknowledgements) are sent in response to a packet arriving to let the sender know that their packet arrived. These are a part of the TCP protocol, however we are using UDP. We still want the acks, but we don’t want to wait like TCP does. This will let us determine in future what our packet loss is and allow us to react in real time to changing network conditions.

Since UDP is an unreliable transport, we need to pack in some redundancy. We don’t want to waste data, so we are going to pack 32 boolean values into a single 32-bit integer using the binary. Each ack will then contain the packet it is acknowledging and a record of whether the last 32 values have been received. That was if our ack gets lost, there are 32 more chances it will be recorded.

💡Single Sign-On

We unveiled the new sign up process 2 weeks ago, and we keep going in the same direction: simplicity and rapidity. Organizations can now enable Azure Directory SSO with Flaneer, invite their members and synchronise groups and permissions with their Flaneer instances. You can now directly enable Azure directory groups for specific type of machines or environments!

With the same mindset, we are now implementing Google and Microsoft SSO and they will soon be available. New users will now be able to directly sign-up with those accounts!

🌟 Improvements

  • User creating a new workstation gets added in the list of authorised users
  • Workstation groups now shut downs quicker
  • Workstation groups are now reaching a 99% launch reliability
  • The web streaming tab will now display the name of the workstation
  • The workstation deletion will now ask to type the name of the workstation to confirm the deletion, to avoid deleting workstation without wanting it
  • It is now possible to rename a workstation after creating it

🐛 Fixes

  • User signing-up now gets a default first name, last name and organisation name
  • Fix a bug with group’s name preview when adding new users
  • Fix a bug that would block some users to access their workstation even after a successful payment
  • Fix Streaming Protocol issues related to our best performances settings
  • Fix the way we delete users on Flaneer
  • Fix a bug with our “Turn off workstation” button on the Streaming toolbar

📖 Tom’s Streaming journey

Heard of the Platinum Jubilee?

💡New sign-up process

We reduced the number of steps to create a Flaneer account, and its now the fastest it can be. (until we implement Google SSO of course). You can now create your virtual PC in less than a minute. We are also working on our new Workstation creation flow. No more tedious modal or hard to read dropdown: everything is available in one place.

Say hello to your blazing fast new PC.

🌟 Improvements

  • New users now get a default name and organization name
  • Every organization can now use Windows Server 2022 templates in their library
  • We improved the “Add To Group“ dropDown modal
  • Improve Work Station Groups instances warming to reduce session start failures

🐛 Fixes

  • Fixed an issue with the macOS shortcut for the Mouse - Gaming mode feature
  • Fixed an issue that would set Persistent Workstation’s timeout to NaN
  • Add a Lock mechanism to solve issues with concurrent new session’s requests

📖 Tom’s Streaming journey

Logging!

When we are beginning to look at the performance of our video streaming solution, the temptation is to get stuck right in and start ripping the guts out. However, a wise move is to take a step back and start to look at how we are going to perform our measurements. We need a robust and easy to read logging output.

We chose to leverage https://spectreconsole.net/ for pretty ✨ looking logs. That isn’t just a vanity thing, colours and emojis can help encode lots of information in a smaller space.

Not only is logging to the console important, but being able to observe important statistics as you work. As such, we can now log directly to the window title with an easy API:

That FPS is looking a little low 👀…. back to work!

Cookie Consent

By clicking “Accept”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts.
View our Privacy Policy for more information.