Plan for cross-platform support

Following up on the plan for the next releases, I wanted to share more about our plans for making Vuo support more hardware / operating systems than just Mac.

Deploy compositions as Linux apps (including Raspberry Pi) is the #1 voted feature request. This would make it possible to develop compositions on macOS and run them on Linux. As some of the comments on that feature request noted, this would mean you could run Vuo on less expensive and more flexible hardware during exhibitions or performances.

Deploy compositions to Windows and Edit compositions on Windows have fewer votes, but would make Vuo accessible to more people than macOS or Linux.

We’re thinking the first step will be deploying compositions to Linux. In addition to its popularity in terms of votes, in terms of implementation this feature would be a stepping stone toward deploying compositions to Windows. Since Linux is more similar to macOS than Windows is, we’d have to solve some of the problems that they have in common in order to get to Linux, but not all of the problems that we’ll have to solve to get to Windows.

After that, we think the next step will be deploying compositions to Windows. That’s still tentative, because we’ll need to reassess the related technology at that point. (For example, maybe it’s overly optimistic, but I would be thrilled if Windows Subsystem for Linux were mature enough to run most Vuo compositions by that time.)

If you use Vuo in your work, how will this plan affect you? Do you see anything important that we’re overlooking?

1 Like

Does the latest Windows 11 announcements (and Beta) being based on the Linux Kernel change much for the eventual Windows version?

Wait, where did you hear that? There was a Computerworld article speculating that they might, but AFAIK Microsoft never announced anything to that effect.

1 Like

Oh boy, It was definitely not a Microsoft announcement, and apparently just skimming an article this morning (one that I can’t seem to find again) was a bad idea.

The article started with something about how integrated the Microsoft Azure platform has become with Linux, then went on about Microsoft becoming members of the Linux foundation and contributing important code to the platform as well as acquiring GitHub and releasing important tools and code there as well.

It was a really long article so I just skimmed through the rest and just caught some headlines about windows 11 and the Linux Kernel and there being other Linux code and also Android compatibility layers found in the Beta release. I guess I read into this to far, that they were saying it was based on the Linux Kernel. It appears in everything else I’m now reading that this is not (at least yet) the case. Sorry about that.

Excuse me while I go and enjoy a piece of humble pie. :smiling_face: Oops

There is WSL though if that matters?

–disregard this, I read the comments before I read the post  

I think the approach with Linux/rPI is sensible. The main issue with the Mac ecosystem is the limited availability of hardware to run it on, making it the less flexible option. With Vuo running on Linux, there is at least the option to run it in a VM on Windows given that you have the necessary HW to do so. With that in mind, I’d rather have editing compositions on Linux before deployment on Windows as that could also be solved with a VM.

Distros will be where the pain is for Linux. I think it would be beneficial to have one distro that you support, and leave it at that. Debian seems to be the clearest contender since rPI OS is based on this, along with Ubuntu also being Debian based which should give it a good base support.

Maybe a thing to look into regarding realtime graphics and cross platform support could be how Godot engine solves this?

2 Likes

Debian seems to be the clearest contender

Agreed.

Maybe a thing to look into regarding realtime graphics and cross platform support could be how Godot engine solves this?

Good point. I found that the Godot developers are adding a Vulkan backend and may at some point deprecate their OpenGL ES backend. Vulkan is one of the options we’re considering for Vuo.  

The big thing here that I think is missing is deployment to iOS. Creators could gain a massive new audience if we could deliver to iPhones and iPads, and that would enable all kinds of cool new touch, camera and sensor-based inputs too. iOS is a much closer cousin to macOS too. Ideally it’d be great to deploy as iOS apps, but even a simple full-screen viewer app on iOS would be excellent.

Are there any major technical or policy issues stopping Vuo from running? I note this was originally requested way back in 2015. :)

@funwithstuff, thanks for pointing out iOS, since I hadn’t mentioned it. Here’s our team’s thinking on that…

Our ballpark estimate is that the time needed to implement deploy-to-iOS would lie somewhere between deploy-to-Linux and deploy-to-Windows. iOS is a close relative to macOS in some respects (Apple frameworks for things like video and multithreading), while Linux is closer to macOS in others (user interface paradigms, device support).

Besides that, the other main difference is that iOS has stricter requirements than macOS for the apps that it allows to run, and what those apps are allowed to do. In order to distribute any iOS app, you have to purchase a $99 USD/year Apple Developer membership. The process of getting an app to run on a device — whether you’re distributing it through the App Store or running it on a predefined set of devices — is quite complicated even for seasoned developers. We could potentially automate parts of it and provide instructions for the rest, with the understanding that it would require continual support and maintenance, since sometimes Apple makes changes to the process and sometimes there are bugs you have to work around.

We’re still thinking it would be best to implement deploy-to-Linux first, not least because it would make it possible to run Vuo compositions on hardware other than Apple’s. When we reassess after deploy-to-Linux is complete, we’ll take another look at deploy-to-iOS and see how it compares to the other possible next steps at that point (deploy compositions to Windows, edit compositions on Linux, …).

1 Like

Understood. My main thought here would really be for a viewer app, so that iOS devices could be used for deployment, such as in an art installation, but I’m not sure that Apple’s guidelines around “running code” could be adhered to. Agreed that distribution of apps is a pain.

@funwithstuff I think one way @teamVuo mentioned to me to make runtime compositions very broadly distributable is compile it Portable Native Client (PNaCl) which is being depreciated next year in June in deference to WebAssembly. There’s also WebGL, which WebAssembly authoring tools can bind to. If you can compile for a web app, then Electron allows you to build a double click desktop application from that code base. Examples are the Slack and Visual Studio Code apps which use the open source Chromium engine under the hood to get native like performance. Not sure how it copes with higher demanding graphics… but several 1st person shooter games were ported to NaCl in the early days.

To me every decision Kosada makes around new features needs to answer one set of questions first… what is the unique power of Vuo and is there a market for it that can grow the income to get the tool to where we’d all like it to be, and keep the tool up to date with industry trends and emerging technologies.

If there isn’t a ready market today, where is the closest market and how can Vuo be modified/ported to access that market. Incredible things happen when scale of a user base doubles every n months. Manifold changes in the community take place, from user contributions to the code base (which would mostly mean OSS compositions and new nodes in the case of Vuo) to word of mouth and buzz to periodic doubling of income for the maintainers of the code base or volunteer code contributions and maintainers (would mean doublings of Pro subscriptions in the case of Vuo). Â