On the Blender Installer for Windows

Making Blender usage easy to start is something I always try to look at. In my personal opinion the easiest and nicest way is always to unzip any software distribution and run it from that fresh directory.
Without having to do anything.

I”ll readily admit that this is probably a way that should be considered fairly “hardcore”, since Windows users will be wanting their links in the start menu and/or on the Desktop for free.

Now, we’ve had our installer for a pretty long time, but pretty often we get reports in our bug tracker, that are related to our installer in some way. This should obviously be fixed, but currently we don”t have a NSIS guru amongst our developers who could properly address all the issues with the installer. Ultimately it should be similar to what unzipping the packed archive does, with the addition of adding the links, registering the Blender executable as default program for .blend files and set up the scripts directory as wanted by the user.

Our latest installer will run with current user privileges, and as such has some obvious problems: no write access to places where the user has no permissions to write to. It is pretty common that users don”t have administrative rights (and probably for good reason). Normally programs would install to %PROGRAMFILES%\Blender Foundation\Blender, but this is an off-limits area for normal users. Since we want our installer to work similar to our zip distribution, it means the default location we pick should be user-writable. For this reason I made the change to write to %USERPROFILE%\Blender Foundation\Blender instead (In my case that translates to C:\Users\Nathan\Blender Foundation\Blender). Of course, one can always change the location of the installation, but the point is that with this default the user doesn”t have to worry about write access. For this case it means one possible error message less, which is a good thing.

Another reason to use these defaults with the user level permissions is that with admin level it was often possible to install Blender in such a way that writing configuration files (startup.blend) or installing addons was impossible, due to wrong permissions for the (normal) user. We want our users to be able to do both things, naturally.

A new problem is with the current permission level, some parts apparently fail silently, like start menu links and registry manipulations (i.e. default action for .blend).

Other issues are how to handle properly uninstallation and installation of newer version. How much to remove

We also used to have problems with missing runtime components, but I think that”s solved currently.

None of these problems really exist with the zip distribution, as it is a fully self-contained install that can be extracted anywhere and Will Just Run<tm>. Again, we (and I guess more specifically, I) lack proper NSIS skills to fix our installer adequately. So, if you”re reading this, always have wondered why our installer sucks, and know exactly how to fix our installer script, please do so!

If we don”t manage to get our installer to a working way, I”d rather drop the installer. I”d replace it with a self-extracting archive that contains a simple install.bat that can create the necessary start menu links and do the default action registration (which you as user can also do by just running blender -R on a command-line). At least that would solve a lot of headaches for me, and probably give more satisfaction to the user. I”ll try to make up my mind, partly based on feedback here before the next release.

Anyway, feedback and ideas, even fixes appreciated.

27 comments 5,840 Views
  1. Noooooooo…! If you’re going to install to the user’s folder, at least put inside AppData (or Application Data under XP). If you put it in the top level like that, it will pollute the Start menu view of the folder unless the user manually hides it with extra effort, and it’s not consistent with other user-folder installations like Google Chrome which do go into AppData. I realise the user can modify it, but we might as well get the best possible approach to start with.

    I’m not actually in favour of these user data program installations though – administrators or power users should be the ones to install programs because they should have control over what code gets executed on the machine. If they’ve given a user a standard non-admin account it’s for a reason, as you noted. Also, it promotes having multiple copies of programs on the hard drive which wastes space. It will also break the uninstaller in that situation, as the Programs and Features entry will presumably point to the last one installed…? Also, make sure the Start menu shortcuts are going into the per-user Start menu instead of the common group.

    However since Google seems to have started the trend, let’s at least be consistent and put things in AppData. It’s where Blender already stores user settings, so putting the program content there too would be much cleaner than yet another folder.

  2. Have you considered WiX? It’s the open-source .msi installer toolset developed by Microsoft employees in their spare time. I’ve used it with some success at work. It does a great job of providing both administrative and non-administrative install paths, custom UI, etc. (If you think it’s worth investigating but need someone to try it out, let me know: Larskemmann (a) aol dot com.)

  3. I too think, this is a bad idea. Loading it into the profile data will not work very well in corporate environments, as the profile is completely send to the clients during login. Also, as an administrator, I *want* the user to be unable to update blender.

    A much much cleaner solution would be to have plugins and configurations in the user’s directory, as it was before. If you really want a user-runnable version, add a “portable”-version (similar to the zip version). But please return to the previous behaviour.

    Also, I would like to have an MSI-package for pushing updates to my clients within LANdesk or similar suites. We have six PC studios with 30 computers each and we are trying to not have to update the images for the PCs all the time. Pushing new packages through LANdesk is much more convenient

  4. In the Windows world what you call zip distribution is known as “XCOPY Deployment” and it is a perfectly legitimate procedure; for more information look at the links of the corresponding Wikipedia article.

    I think that going the XCOPY way with a clear description on Blender.org download page that it is an XCOPY deployment and the mention of -R command line option is more than adequate.

  5. With all the great work done on Blender to make it awesome, the current installer totally blows the professional presentation and user’s first impression. Imagine I tell a college to give Blender a try because and the first thing he experiences is a broken installer. I really think this needs to be resolved in a a way that gives new users a positive and professional first impression before the application is started up. I do realize that developers dislike creating installers (I used to do it a decade or so ago using Wise and InstallShield). Blender needs a good “unboxing” experience to set the tone for everything that comes after that and it should really also install links to documentation, official sites and a donation page. Do the Winamp team still have their own free installer SDK? That was used quite a bit a few years ago.

  6. Have you considered Inno Setup? It’s a free and open-source NSIS alternative that is extremely easy to use, is very flexible, and has a built-in Pascal scripting engine so that you can write custom logic, create custom wizard pages, etc. It is used for many important and well-known open-source and commercial products such as GIMP (and many of its plugins) and CamStudio. Inno Setup supports the latest Microsoft operating systems such as Windows 7. It has 64-bit support and lets you put multiple processor architectures in one package. It supports customizable setup types (Full, Lite, Minimum, Custom, etc.), shortcuts, registry and INI entries, multilingual installs, etc. I personally prefer Inno Setup over NSIS.

    I would be glad to create an installer of Blender for you to check out. I have considerable experience with it, and have done much Pascal scripting to create advanced installers. Let me know at haymondsoftware AT gmail DOT com.

  7. One thing that must be accounted for is the ratio of zip vs installer downloads. If the installer downloads vastly outweigh the zip downloads then removing that option would be a very bad move imho.

    In all honesty, I have never had any issues with the current installer and surely the people who are having issue with the installer are in the vast minority of total installer users?
    As such, modifying the install path will add extra work to the users who dont have issues with the current installer.

    It just seems a little crazy to consider totally changing the way in which Blender is distributed and installed to fix issues that are not a major problem with the majority of its users.

    As Andrew said, if users are not given administrative powers then they should not be installing any software with out the guidance or the help of the Administrator anyway.

    Maybe a solution would be that the installer will not continue, and instruct the user to obtain a zip installation, if they do not have the necessary privileges to use the installer without issue?

    • On 3 different Windows 7 boxes with the full admin rights, I have the same problem (no installed shortcuts, installing in the user directory, etc). It’s pretty easy for me to modify it to work the way I want it to, but that’s not true for many of the purely 3D artists I’ve worked with. I haven’t tested on Vista or XP.

      On a side note, if the installer isn’t fixed to match user expectations for windows boxes, then it should be removed from the download as right now, it’s not functioning properly on the platform.

  8. ZIP only is fine with me.

  9. If someone installed their program into my users directory, I’d be pissed.
    For windows platform, what’s wrong with the installer built into visual studio?
    I’ve used it and it works well (I know we all hate the big guy, but they do make some good software.)

  10. While I’m sure the problem is being looked into, i hope it has a low priority at the moment. I don’t think it is necessarily “user unfriendly” to provide a zip package. Running the soft opens a commandline process FFS! How user friendly is that in the tome of Windows UI Guidelines :)… While i guess it would be nice to automagically install shortcuts, i feel it’s trivial for most users nowadays, let them do it themselves if they desire, throw up a wiki page or something.

  11. My brother is using poser and other software to teach students 3d. I am trying to get him to use blender and the installer is the ONLY reason he’s using it. He doesn’t want to read any instruactions or do anything, just click install and use. He has used all of your installers without issue. In fact if you blow away a ‘configuration’ and set the pc back to default THAT’S GREAT! We want all the pcs to be the default and the same. If I have a new version of blender and 25 pcs to install it on, I don’t want to do a bunch of clicking. The installer saves a TON of clicking in this scenario. I have used the installer on xp and win7 64 bit without issue on several versions now. I love it and vote it stays. Please don’t listen to a bunch of whining.

  12. for me zip only is the better solution too!The biggest benefit is that we can have a vesion on flash usb and this makes easier to start your current version from any computer! plus, now, as Blender is not in final version yet many of us are using more than one version! and installer will broke any previous versions! for instance i am using very old version (4-5 months old) for modelling, because there is an addon for toggling edge-face -vertex mode with spacebar and this particular addon dont have a version for the newer builds! i think that there are many users like me that use some old versions from graphicall for their particular reasons!

  13. I’m puzzled why an installer that doesn’t need admin elevation is needed? If someone doesn’t have admin rights or know about them, that says to me that they shouldn’t be installing software on that system because it’s probably not theirs. And surely in these circumstances the ZIP package is the ideal solution?

    I have a bit of experience with software packaging and would be happy to help. (Though I don’t know how to go about that!)

  14. Installers are evil.

  15. Install bat doesn’t sound like a bad idea, but it would be nice to have the zip, just in case.

  16. For those who are interested in helping out…

    The existing installer definition scripts are located here:

    You’ll need to checkout the entire directory to build the existing installer, though you should be able to use the contents of the current installer instead of building Blender from scratch.

    I’ve been using NSIS for about 6 years now (my company’s product is packaged using NSIS) and I find it fairly easy to use. We had to go through a bunch of iterations to get everything working quite right…

    I noticed some comments above about creating MSI installers as well… and I can see where those people are coming from. We’ve had customers who had to repackage our product so they could centrally manage installations (we’ve also added silent install mode for others). But I’ve found working with WiX a nightmare (newer project is using that for building installers) but this could be a good option for somebody who already knows the tool.

    Anyway… some additional links for people who might be interested in helping:
    TortoiseSVN – http://tortoisesvn.tigris.org/
    NSIS – http://nsis.sourceforge.net/Main_Page
    WiX – http://wix.sourceforge.net/
    WiX Tutorial – http://www.tramontana.co.hu/wix/

  17. I forgot to mention something… since our software centrally managed user and configuration on a single machine instead of spreading our the data logging to each user’s home directory we used the AccessControl plug-in for NSIS to manage permissions in our installation directory to allow configurations and such to be read and modified.


  18. Personally, I hate installers and always use the ZIP file option. That’s what I’ve always loved about Blender – just copy some files into your folder of choice and run blender.exe. It’s so quick and lightweight, and you know *exactly* what’s happened to your PC!

    I detest the approach of Adobe etc, who sprinkle files all over your disk and registry without your knowledge. I don’t even like Blender 2.5’s automatic use of the Windows username folder for storing startup.blend, etc. – I’d rather it asked me before saving its files *anywhere* outside my chosen installation folder.

  19. For all the comments on here saying “I’m okay with zip/XCOPY deployment only”, remember that this blog post’s comments are not a representative sample of the general population (of current Blender users OR of potential Blender users) – but rather a sample of Blender users who are significantly interested in Blender code topics (i.e., are likely developers themselves).

    @Ben Lau, I have the directory with the installer definition scripts checked out (plus the rest of Blender for Windows; I often build it from source to get the latest fixes). Where in the build process would I find the NSIS step? Thanks!

    • @Lars Kemmann, to build our NSIS installer you’ll have to build using SCons. Make sure you have makensis.exe in your path and the MoreInfo plugin installed. You then start the build process with: python scons\scons.py nsis. You can give any options before the target. I have a set of configs I use to build our official releases. I specify those on the command-line thus: python scons\scons.py BF_CONFIG=release_32b nsis and python scons\scons.py BF_CONFIG=release_64b.

      When you specify the nsis target the file 00.sconsblender.nsi is used to create the actual script. Anyone who is interested in working out a better installer can look at the mentioned template and the function def NSIS_Installer in btools.py. The mentioned function creates all the necessary file lists, puts them in the installer script template and finally runs makensis.exe.

  20. Will be nice that the installer have the Blender3D edition Splash Screen will look nice , cause some new users will get it from friends rather from site so seeing some of the Slplash Screen in the installer or some rendered images in the installer …will be nice.

    :)But still it is good simple and installable rather than` “marketable”.

  21. I’m with Andrew, etc. I do NOT like it when a program installs in some non-standard user data area either. I believe a standard location installer is still what is needed for most users for the reasons mentioned by others. Hopefully some knowledgeable people can solve the permission issue in a better way than such a drastic change.

    If a batch file can be added to the zip (which definitely should be kept!) to do a user-area install, that sounds a reasonable *alternative* but not as the standard or only method.

  22. I’ve been looking for an installer that installs blender with my blend files. I try to make my blender games look professional and I don’t want to give the wrong impression by having my friends/family have to install blender than have to copy my blend files. How did blender 4×4 do it, or blender color cube? If you know please help. PS. Blender installed just fine on my computer.

  23. It does look like it is trial-ware (I don’t think it was when I wrote this post). The good news is that some of it still is free, even after the trial ends. Here’s a snip from the page.”The GOLD version is a fully fnnctioual Trial version of product – it will run for 30 days on your machine and you can try all features of this product. After 30 days you need to purchase license.key or to uninstall the software. An optional tool in this package – Graphical Installer Wizard is FREE (and always will be!) – you can use it after your Trial period expires. …”

  1. Leave a Reply

    Your email address will not be published. Required fields are marked *


share this story on