I am familiar with running Blender via SSH and that is not what I am searching for. Is it possible to run Blender off my uni's server like an online service? so that it completely runs and renders on it while clients can access it similar to Google Slides
2 Answers
The short answer is yes.
The long answer is that to do that, you need to create some manner of communicating with the Blender instance\s running on your University's servers.
You can set up and install a web server with which you can communicate via a web browser anywhere, for instance. This will be the most user friendly, since you can then create an HTML interface for running commands, uploading files, etc. You can choose any modern webserver you'd like, as they're all capable of executing external commands.
The web server will need to include custom code which will run Blender with the appropriate parameters according to the data transferred through the web server.
This can get more complicated if you want to upload files (since then you need to include uploading protocols, set up hosting paths, perhaps add a stricter security layer, etc).
There's plenty of other ways to do this. For instance, you can create a blender python script that when launched, makes blender listen to some socket, wait for input and perform various tasks accordingly. You should try websockets in that case, as its fairly simple to use.
In any case, you should know that this isn't a trivial thing to do and requires a lot of non-blender work to set up the environment and communication, which is why this answer doesn't really have any practical examples or code.
-
$\begingroup$ I wish to build a fully functional system that can be used remotely. Is there any way to make local blender runtime sync with the one on a server? How exactly do I go about it? $\endgroup$– vaZarkFeb 21, 2016 at 7:44
-
$\begingroup$ If you simply want to work remotely through the server, I second Sambler's suggestions below. If your University's server is headless and based on Linux, X11 forwarding seems like the best thing. If has an active UI you can use a remote desktop client (nice suggestions here: techradar.com/news/software/applications/…). There's plenty of parallels solutions for windows based servers. $\endgroup$– TLouskyFeb 21, 2016 at 10:30
As with any X11 based program you can run blender on a remote server and have it's windows displayed locally by using X11 forwarding. Over a local network this can work but won't give the same performance as a local copy of blender.
If you want to create a web based solution, I would start with building blender as a module and use webgl to draw in the browser. I doubt you could get full functionality this way but you may be able to setup a simple 3d editor using blender as the backend.
-
$\begingroup$ I wish to build a fully functional system that can be used remotely. Is there any way to make local blender runtime sync with the one on a server? Given a server system's vastly greater processing power(with blender running on it), will performance truly be an issue? $\endgroup$– vaZarkFeb 21, 2016 at 7:42
-
1$\begingroup$ blender will need to be installed or at least copied over to the server to run it there. You could setup a script to automate copying it across - remember to include the dependencies that blender will need to run (libjpeg, libpng...). The performance issue from X11 forwarding comes from the extra overhead of X11 sending the draw commands over the network. I would run blender locally and only send the render job to the faster server. You can setup a render farm, either the included network render addon or something like flamenco $\endgroup$– samblerFeb 21, 2016 at 8:19