Integrate Slicer into a web interface

Hello,
We are using 3D slicer with some custom made plugins (plugins that connect to images in our database and others).
We want other users to interacts with “our” 3d slicer. Ideally (instead of them installing it locally on their computer which can be cumbersome because there are a lot of plugins) we are thinking about the possibility de develop a web interface so that we can just give them an adress, and they can use slicer through a brower interface without the need to install anything.

Do you know if such an integration has already been developed so that we can have a look at it an reuse what has been done ? If not, do you think it is feasable technically and how would you proceed ?

Thanks a lot for your help !

There are several solutions for this. You can run Slicer in a docker container and connect to it from a web broser as shown here:

If you need a more sophisticated setup (user authentication, Slicer instance automatically started when a user logs in, connection with hospital PACS, etc.) then that’s all doable, too. Several people on this forum have set up such systems using various technology stacks. However, significant expertise and effort are required to set up and manage a server that provides this - I don’t think there is a free and open-source turn-key solution.

there are about at least couple dozen different ways of doing this. Depends on your technical skills, and how you want to run the Slicer.

One of the simpler solutions would be to run Slicer on Linux box, which is setup to use turboVNC and VirtualGL (if you want 3D acceleration, and remote GPU support). Then you create linux accounts for your users, and then they can connect using the dedicated TurboVNC client (works on mac, windows and linux) and login their desktop session and fully interact with the “your” computer with your Slicer installed.

If installing turbovnc client is a deal breaker, you can also do the similar setup with noVNC or other alternatives that will work through a web browser. Based on my experience, dedicated turbovnc client gives better network performance, particularly if you are on slow connections.

It is important to note, VNC (in any form), does not allow application isolation. Meaning if you want your folks to have only access to Slicer on the computer and nothing else, that’s not possible. However, things being fully configurable in Linux, you can create a custom environment, in which they can only easily start Slicer.

If you want to limit people’s access to resources (constrain the memory usage, number of cores they can use etc), you can go down the docker route.

2 Likes