-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Web-based UI integration with Blender #87
Comments
Hi Dion, That said i never coded on blender nor blenderbim yet, and can't really appreciate the "trickyness" of hosting a webserver within blenderbim without crashing the whole app. But first things first, I have a few questions to check if my understanding of what you aim for is correct.
Have a good day, (night?) |
|
Hello @Moult This project seems to perfect to me for GSOC'24.I have all potential skills for this project.Can you please guide where to start and please assign some good first issues |
@Manideep-Maddileti g'day! GSoC 2024 has not yet started and we don't know yet if the organisation is approved (ping @brlcad ) - we're just collecting ideas. If you're keen anyway a good starting point would be to fire up Blender and start experimenting with options and get familiar with how their Python is bundled. Very little Javascript is expected. |
Hey @Manideep-Maddileti ! The organisation has been approved so now is an excellent time to make a start. The checklist is here: https://opencax.github.io/gsoc_checklist.html and you can reach out at https://osarch.org/chat |
Hi @Moult, I'm Prashanth D, a frontend developer with skills in HTML, CSS, JS, React, Python, and C++. I'm particularly interested in web-based UI integration with Blender projects. Coming from a mechanical background, I also have substantial experience working with CAD software, including SolidWorks and AutoCAD. Excited about the prospect of discussing potential collaborations or projects in this space. Looking forward to connecting! Best, |
@prashant226 g'day! The next best step is to start getting familiar with Blender, write a draft application, say hi in the chat, and follow the checklist :) |
@Moult thank you, can please provide me the chat group link. |
https://osarch.org/chat as linked above |
I can also recommend FastAPI for the project, because it is the same API framework as used in this project: #93 There could be synergies from using the same framework in both projects. FastAPI is fast, modern, lightweight, stable python API framework, quickly gaining popularity for NoSQL and microservice API projects. |
I've done something similar for FreeCAD: I've used Flask and GraphQL to display a simple settings form. It didn't get much interest from the community as FreeCAD is already spread thin between C++ and Python. The challenge was to start/stop the server as a part of a desktop application. I didn't solve it, I just used FreeCAD as a library. I would approach it this way:
But this is just a technological side, a demo of possibilities. First, you should think about a real useful use case. Otherwise this project would be stillborn. What can be done using web interface more effectively than from a desktop application? Just one thing comes to mind: collaboration and sharing. Gantt chart sounds like a good idea, but it already exists. I would try something in the exporting space. E.g., save IFC files to cloud storage, display drawings, export PDFs. To truly leverage the power of websockets and do something useful, one could implement a remote backup server that would backup IFC files at regular intervals and display the backed up file using IFCjs/web-ifc. |
Outline
The BlenderBIM Add-on extends the Blender interface with a lot of buttons, dropdowns, and more to interact with 3D models. However, in many scenarios, the Blender interface is not suitable for the type of interface we want. For example, we might want to show a gantt chart, or spreadsheet interface, and it's really difficult to do this with Blender's UI capabilities.
This project will aim to create a web UI that will run alongside the active Blender session. The web UI needs to be able to grab data from the current Blender session, and ideally even run operators in Blender from the web UI.
Details
Running a web interface alongside Blender could be tricky. It may involve setting up a local web server (e.g. with something minimal like flask or werkzeug) and mapping calls to that server to executing Blender operators.
We'll start by doing a simple proof of concept where the web UI displays data that Blender knows about (e.g. an objects name), and then pressing a button in the web UI which then causes Blender to run an operator.
Then, we'll progress to showing a simple HTML table of tabular data. You will be provided with the tabular data and how to access or generate this tabular data in Python in Blender.
If time permits, a gantt chart may also be generated. There is existing code for a gantt chart that is statically generated, so this needs to be modified to update dynamically depending on Blender activities.
Expected Outcome
Future Possibilities
Project Properties
Skills
Difficulty
Medium
Size
Medium or Long
Additional Information
The text was updated successfully, but these errors were encountered: