What's new

Anyone running Alibre on a VM thru Linux?

NateLiquidGravity

Alibre Super User
I currently run Alibre 24 under Win 10 Pro on a laptop. I also own a Mac Mini with similar Intel hardware. I'd like to explore running Alibre under Parallels on the Mac. But I'd still like to switch back and forth from Win laptop to Mac Min without having to buy another Alibre license. I think Alibre has the capability to switch off a license on one computer and switch it back on another. But not sure how to install it under Parallels on the Mac and maintain this capability. Does anyone have any insight?

Thanks,
Rick
I don't know if the program will install or work on Mac with Parallels - but for licensing:
If you have active maintenance you can go to this site to deactivate a license to be able to run it on another machine. https://www.alibre.com/licenseportal/
Alternatively you can open Alibre Design Home Utilities tab and Release the license. Then you will need to enter it again next time.
 

JVMATL

New Member
TL;DR: It can work - but it can also stop working without warning. Consider your risk exposure if it stops working.
---
FWIW, I ran Alibre Atom3D v26 and v27 on an old intel-based MBP for about a year under Parallels with no issues other than transient lagginess when rotating some parts. About a month ago, I migrated my VM to VMWare Workstation 17 on Linux on a much faster machine, and it also worked fine... UNTIL I ran a windows update in September 2023, and now it crashes without any message or log every time I open a part. :(

(I can launch the app, I can start a new part, I can't open any old parts. If I revert to an older VM snapshot, it works fine, but I have to mount my data folder from the host so I can save off my work before shutting down the VM and reverting to the old snapshot again. Workable for me, because I'm a hobbyist user, but probably not acceptable if you use it professionally)

I contacted support and they were polite and willing to look at it, but reminded me that they don't support running in a VM (I never saw this in their terms, but then I never looked for it, either.) So far, no joy fixing it. I'm hoping that a future Windows update will un-break it.
 
Last edited:

Max

Administrator
Staff member
In theory - and I don't want to get too many hopes up - once we finish our UI port we will be able to migrate to .NET Core (I believe). WinForms, which our UI currently uses, is one of the last Windows specific things we have in the software, if not the last. Once we no longer rely on WinForms, and we've migrated to .NET Core, it is in theory possible to target other platforms. Targeting for Mac or Linux and it actually working are different things, but in the past I would have just said "no and we will not ever consider it" whereas today I say "it's not impossible". Take that for what it's worth :D
 

JVMATL

New Member
Well, similar to how WinForms is the only thing pinning you to Windows, Alibre is the only reason I still have a windows license at all -- even my video games run under Linux now!

So, understanding you're not committing to anything, I would welcome this. I won't pay for a 'lifetime' license of something expensive on Windows, because it ties me to Windows.. for life :) -- but I would consider upgrading to one of the higher tiers, in order to get some more 'big-project' features (especially global design variables) if it were available to run natively on Linux.
 

Ex Machina

Senior Member
... but in the past I would have just said "no and we will not ever consider it" whereas today I say "it's not impossible". Take that for what it's worth :D
To tell you the truth, I never really understood why CAD was on Windows in the first place. It is, primarily, a professional software where speed and efficiency is paramount. So, what is it doing in Windows? But anyway... Might just be me...
 

simonb65

Alibre Super User
It is, primarily, a professional software where speed and efficiency is paramount. So, what is it doing in Windows?
There are plenty of industry standard professional real time audio/video recording studio applications that run on Windows, speed and efficiency are not down to the OS, but to the application architecture and whether or not 'native' code is used a rather than JIT (Just in time) compilation, like the .NET framework. The JIT based languages (.NET) are designed specifically for cross platform execution, not speed/performance (although they can be optimised to get good performance, they are no means the best choice). JIT based languages are traditionally designed for faster and easier development, not performance!

Compared to real time video processing and audio DSP, a graphics rendering engine is relatively trivial!

For performance, regardless of the OS it's running under, you need to write in low level code and have it compiled to native runtime code. That's why 'power' developers still use C/C++ rather than Java, Python or .NET. Making any application cross-platform, from an architecture POV, automatically introduces performance compromises, but has the benefit of targeting a wider userbase.

I write in C# and .NET for most applications, but when I need high performance like real time graphic rendering, data charting, large data processing, fast network or quick UI response, that gets written in C++ and heavily profiled and optimised for the OS it's running on.

One reason why Apple don't support cross platform on their Logic Pro music DAW ... because it's tuned to iOS for performance. Doing that for Windows would be twice the development effort.

So, any application that needs maximum performance has to be written and optimised for that specific single OS platform, regardless of whether that's Windows, Linux, iOS, Android, Chromium, etc.
 

Ex Machina

Senior Member
There are plenty of industry standard professional real time audio/video recording studio applications that run on Windows, speed and efficiency are not down to the OS, but to the application architecture and whether or not 'native' code is used a rather than JIT (Just in time) compilation, like the .NET framework. The JIT based languages (.NET) are designed specifically for cross platform execution, not speed/performance (although they can be optimised to get good performance, they are no means the best choice). JIT based languages are traditionally designed for faster and easier development, not performance!

Compared to real time video processing and audio DSP, a graphics rendering engine is relatively trivial!

For performance, regardless of the OS it's running under, you need to write in low level code and have it compiled to native runtime code. That's why 'power' developers still use C/C++ rather than Java, Python or .NET. Making any application cross-platform, from an architecture POV, automatically introduces performance compromises, but has the benefit of targeting a wider userbase.

I write in C# and .NET for most applications, but when I need high performance like real time graphic rendering, data charting, large data processing, fast network or quick UI response, that gets written in C++ and heavily profiled and optimised for the OS it's running on.

One reason why Apple don't support cross platform on their Logic Pro music DAW ... because it's tuned to iOS for performance. Doing that for Windows would be twice the development effort.

So, any application that needs maximum performance has to be written and optimised for that specific single OS platform, regardless of whether that's Windows, Linux, iOS, Android, Chromium, etc.
Hey Simon,

I wasn't talking so much about OS level efficiency and code efficiency. I was reffereing more to bloatware, and things running in the background that you don't have a lot of control over yet you need to spend RAM and CPU cycles for, a.k.a. bloatware.
 
Last edited:

NateLiquidGravity

Alibre Super User
So, what is it doing in Windows?
What Simon said but also:
Until more recently graphics card manufacturers ignored everything except Windows and Apple. Imho - Valve Software and Google's ChromeOS and Android can be thanked for much of that changing.

And you typically develop for where users already are not where they could go in the future. Low hanging fruit.

That said; markets are shifting now. Many including myself don't like the direction Microsoft is going with its OS.
 

bolsover

Senior Member
In theory - and I don't want to get too many hopes up - once we finish our UI port we will be able to migrate to .NET Core (I believe). WinForms, which our UI currently uses, is one of the last Windows specific things we have in the software, if not the last. Once we no longer rely on WinForms, and we've migrated to .NET Core, it is in theory possible to target other platforms. Targeting for Mac or Linux and it actually working are different things, but in the past I would have just said "no and we will not ever consider it" whereas today I say "it's not impossible". Take that for what it's worth :D
This is great news - I know there is no commitment on timeframe but a move to .NET Core would be a massive benefit for those here who work with the AlibreX API.
If this does go ahead please move up to .NET 8.0 - due for release Nov 23. This is the next LTS version and will also offer support for C# 12.

David
 

bolsover

Senior Member
There are plenty of industry standard professional real time audio/video recording studio applications that run on Windows, speed and efficiency are not down to the OS, but to the application architecture and whether or not 'native' code is used a rather than JIT (Just in time) compilation, like the .NET framework. The JIT based languages (.NET) are designed specifically for cross platform execution, not speed/performance (although they can be optimised to get good performance, they are no means the best choice). JIT based languages are traditionally designed for faster and easier development, not performance!

Compared to real time video processing and audio DSP, a graphics rendering engine is relatively trivial!

For performance, regardless of the OS it's running under, you need to write in low level code and have it compiled to native runtime code. That's why 'power' developers still use C/C++ rather than Java, Python or .NET. Making any application cross-platform, from an architecture POV, automatically introduces performance compromises, but has the benefit of targeting a wider userbase.

I write in C# and .NET for most applications, but when I need high performance like real time graphic rendering, data charting, large data processing, fast network or quick UI response, that gets written in C++ and heavily profiled and optimised for the OS it's running on.

One reason why Apple don't support cross platform on their Logic Pro music DAW ... because it's tuned to iOS for performance. Doing that for Windows would be twice the development effort.

So, any application that needs maximum performance has to be written and optimised for that specific single OS platform, regardless of whether that's Windows, Linux, iOS, Android, Chromium, etc.
I agree with much of this but I think caution is also needed. You've opened up the whole dynamic versus static compilation debate! In some scenario, JIT can be faster because the compiler knows which branches of the code get executed most often and can treat these 'hot spots' accordingly. Statically compiled code (generally) makes no such attempt at optimisation. On the other hand, I agree for low level system and graphics drivers C, C++ makes complete sense since the usual maths bottlenecks can get optimised.

Great example of optimisation from the authors of Quake!:
C:
float fastInvSqrt(float x) {
  int i = *(int*)&x;
  i = 0x5f3759df - (i >> 1);
  float y = *(float*)&i;
  return y * (1.5F - 0.5F * x * y * y);
}
 

Latitude

Member
In theory - and I don't want to get too many hopes up - once we finish our UI port we will be able to migrate to .NET Core (I believe). WinForms, which our UI currently uses, is one of the last Windows specific things we have in the software, if not the last. Once we no longer rely on WinForms, and we've migrated to .NET Core, it is in theory possible to target other platforms. Targeting for Mac or Linux and it actually working are different things, but in the past I would have just said "no and we will not ever consider it" whereas today I say "it's not impossible". Take that for what it's worth :D
Max I don't know if this is of interest to you but it's actually been reasonably easy to get Alibre installed using bottles (https://usebottles.com) on linux which is a way to manage wine and automatically add the dependencies i.e. .NET 4.8 for Alibre.

The problem I had later was that the licensing portion of the software seems to not be happy to be running in Wine. In case Alibre are interested I'd love to get some help understanding what the specific error code (pasted below) means so that I can debug. To be clear though I can absolutely see why this might not be a priority and that Alibre have better stuff to do so feel free to say no or not now!

I sent over an email to support and David was extremely helpful and checked the licensing vendors docs but they didn't seem to have more info in their documentation so that's where I stopped for now. Bottles also has an easy way to enable Direct X through GUI so I am optimistic about graphics performance if it gets working.

1697963850430.png
 
Last edited:

stepalibre

Alibre Super User
In theory - and I don't want to get too many hopes up - once we finish our UI port we will be able to migrate to .NET Core (I believe). WinForms, which our UI currently uses, is one of the last Windows specific things we have in the software, if not the last. Once we no longer rely on WinForms, and we've migrated to .NET Core, it is in theory possible to target other platforms. Targeting for Mac or Linux and it actually working are different things, but in the past I would have just said "no and we will not ever consider it" whereas today I say "it's not impossible". Take that for what it's worth :D
How did I miss this? Thanks Max. I can't wait! I'm building WPF panels using the ElementHost control for UI. Or I use WebView2 control for HTML UI. I was recently debating which UI framework to use in Alibre. If I should port old WinForms to something else.
:)
 
Last edited:

Joseph_L

Administrator
Staff member
I'm a bit late chiming in, but I would call myself a Linux fan (though I've only used Debian, I haven't ventured far onto the red hat side of things.) I've made some pretty heavy/complex models in virtual machines too with good success and reliability using the following hardware:

Debian OS, usually Mint, Ubuntu or Pop!_OS
Xeon Processor E3 1505M V6
32 GB RAM
Nvidia Quadro M2200 Graphics

I've tried Alibre in several VM's including Virtualbox and Vmware, but hands down I'd recommend qemu with the virtual machine manger GUI. I recommend installing it with virtio drivers instead of the regular ones. I've found it boots faster and has near native performance for everything except graphics. It is also, to my understanding, fully open source if that matters to you when running Linux. If you can put up with a little sluggish graphics, at least with the specs of my machine above, it has been seamless otherwise in my lived experience.

The amazing, smart, attractive, etc (-: Joko Engineering did a video on using Alibre in Virtualbox:


There is one thing I haven't tried, and it's not something I have time to try, but you can probably get 1:1 graphics performance if you configure graphics card passthrough on the VM. Mental Outlaw has content on this:


Good luck, let me know if I can help with some content on qemu, virt-manager and virtio if you'd like to go that route.
 

I run it under a qemu, partially tuned from the directions on the arch page. I believe I linked everything needed to get GPU passthrough in qemu kvm working. Graphics performance is great. The looking-glass app keeps me from needed a second keyboard monitor or weird scripts.

I can post my config if needed. The ARCH link is there for reference as to what you need to do and possibly tune.

Basic steps were install OS -> run the scripts from pavolelsig for the OS you installed, it will need a few package adjustments on the newer debian / ubuntu installs -> add the required items into the xml for the vm -> win.

I installed windows 10 first, and then passed the gpu through. I also listed the hardware I use to activate the video card and deactivate it when i boot into native windows.

I've successfully passed both AMD and NVIDIA cards.

I'm a bit late chiming in, but I would call myself a Linux fan (though I've only used Debian, I haven't ventured far onto the red hat side of things.) I've made some pretty heavy/complex models in virtual machines too with good success and reliability using the following hardware:

Debian OS, usually Mint, Ubuntu or Pop!_OS
Xeon Processor E3 1505M V6
32 GB RAM
Nvidia Quadro M2200 Graphics

I've tried Alibre in several VM's including Virtualbox and Vmware, but hands down I'd recommend qemu with the virtual machine manger GUI. I recommend installing it with virtio drivers instead of the regular ones. I've found it boots faster and has near native performance for everything except graphics. It is also, to my understanding, fully open source if that matters to you when running Linux. If you can put up with a little sluggish graphics, at least with the specs of my machine above, it has been seamless otherwise in my lived experience.

The amazing, smart, attractive, etc (-: Joko Engineering did a video on using Alibre in Virtualbox:


There is one thing I haven't tried, and it's not something I have time to try, but you can probably get 1:1 graphics performance if you configure graphics card passthrough on the VM. Mental Outlaw has content on this:


Good luck, let me know if I can help with some content on qemu, virt-manager and virtio if you'd like to go that route.
 

nenad

Member
I tried it few times in various VMs without GPU passthrough, and it was always unusable. Today I tried Atom v27 in VMWare Player (17.5) and it works quite well, much better than anything I've tried before (VMWare player, Virtualbox, KVM/QMU). I tried some mid-complex model, simple assembly and drawing, and would say one could work with this set-up. Probably it won't be that smooth with more complex stuff, but If i find some time, I'll test it also.
My PC is not so fast (R5 2600, SATA SSD), so I suppose with newer one, it would be even better.
 
Top