Build a simple GUI that runs full Blender in the background? I have a Cycles-Blender model, which I want to release to the layman users who don't know Blender and give them some freedom to manipulate and explore the model a bit (simple operations like rotating the model around or setting visibility of a certain object, etc.).

For this use, I want to build a simple GUI that "wrappers" Blender inside. For example, I can add a button that sets an object invisible in rendering.

Another important feature I need is the user being able to drag/rotate/zoom in/etc. the model, and as soon as user interaction is done, the render starts progressively. It's the same thing when you are in Object Mode with Rendered as Viewport Shading. 

Is there an easy/clean way of doing this? 

I am a CS student and know how to code in Blender-Python. So if there isn't a clean way, please also teach me the dirty way to do it. ;-)



This question isn't the same as How to create a custom UI?, which wants to customize around the Blender GUI. Instead, I want to build from scratch, as the layman users really need super simple GUI's.
Sounds like you're trying to re-invent the wheel.

I'd imagine you might use Python for your GUI
to remain consistent with Blender scripting.  

I'd look into PySide.
It's an open-source Python wrapper for the Qt lib.  

PySide can access OpenGL via PySide.QtOpenGL calls,
so you'd have a way to view your model that way.  

Then you'd most likely use a subprocess call to Blender
on the commandline for your final render.  

If you need to access bpy and all those features,
you could compile Blender as it's own Python module:
https://wiki.blender.org/index.php/User:Ideasman42/BlenderAsPyModule

You might look into the Blender 101 Project first.
https://code.blender.org/2016/12/the-blender-101-project-and-you

It might do what you're trying to accomplish.  

Contributing to that might be an easier way
for everyone to enjoy using Blender, even beginners.