Skip to content
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

BRL-CAD Python bindings #52

Open
drossberg opened this issue Feb 3, 2022 · 11 comments
Open

BRL-CAD Python bindings #52

drossberg opened this issue Feb 3, 2022 · 11 comments

Comments

@drossberg
Copy link
Member

drossberg commented Feb 3, 2022

Outline

Implement bindings for the BRL-CAD functionality to Python programming language

Details

There are long time on-going efforts to wrap BRL-CAD functionality with python code, e.g.

These projects are however still in early development stages.

Expected Outcome

A Python module which can read and write BRL-CAD databases, and provide access to their contents to read, create, and modify the objects.

Project Properties

Skills

  • C/C++
  • Python

Difficulty

This project may be of easy or medium difficulty, depending on your familiarity and expertise.

Size

This project can be scoped medium (175h) or long (350h), depending on the amount of functionality you want to include.

Additional Information

@aniketjohri23
Copy link

Hello mentors, I am interested in working on this project. Can you give me a starting point to work on this.

@brlcad
Copy link
Contributor

brlcad commented Mar 9, 2022

Hello @aniketjohri23 -- the starting points are listed in the project description. There are two previous efforts. The most recent in 2018 has additional information you can read up on at https://brlcad.org/wiki/Google_Summer_of_Code/2018

He published a summary at https://medium.com/@Mr_Jaypee/brl-cads-python-procedural-geometry-990e3c286a63

You'll need to review and understand those prior efforts in order to propose something meaningful. There are lots of possibilities but one of the most basic is described above -- update/create the ability to read, write, and modify objects using python. An extension I think would be really powerful is the ability to define a script entity in BRL-CAD that could be described by python (or ged script or lua script, etc).

@anirban-1009
Copy link

I am interested in the Project can anyone post with the details of this project?

@drossberg
Copy link
Member Author

I think, you found our Zulip channel, right?

@anirban-1009
Copy link

anirban-1009 commented Mar 14, 2023 via email

@niuniuzhao
Copy link

Hello there! I am an architecture student and a GSoC2024 applicant. I'm very interested in this project because it seems like a great fit! Could you please advise whether the scope of the project would be within the reach for someone with sophomore computer science knowledge - wide introduction + data structures (and a lot of motivation, of course)? I love a challenge but also don't want to overshoot too much. :) Thanks!

@drossberg
Copy link
Member Author

Hi @niuniuzhao, thanks for your interest in BRL-CAD. Welcome!

The BRL-CAD Python API could indeed be an easy project, depending on what is easy for you. You should be firm in C, C++ (more passive, i.e. reading), and Python (writing code) and you should have a sense of API design.

If you are still interested, you should familiarize yourself with our software first:

For discussions, we have our Zulip chat.

@Parv-gugnani
Copy link

hello i want to help how can i contribute

@drossberg
Copy link
Member Author

Hi @Parv-gugnani, welcome! For you applies the same as for niuniuzhao ;)

@Shreyansh260
Copy link

I am Shreyansh Singh Rathore, a B.Tech student specializing in AI and Data Science. I have a strong background in Python and have worked on several projects, including a Python-based Vulnerability Scanner for web applications.

I am highly interested in contributing to the BRL-CAD Python Bindings project for GSoC 2025. I have reviewed the existing efforts, such as (https://github.com/kanzure/python-brlcad) and (https://github.com/nmz787/python-brlcad-tcl), and understand that the goal is to create a Python module for interacting with BRL-CAD databases.

I would love to discuss how I can contribute effectively to this project and refine my proposal based on your guidance. Could you provide insights into the current challenges or specific areas that need improvement? Also, do you recommend any particular resources to get started?

Looking forward to your response.

Best regards,
Shreyansh Singh Rathore

@drossberg
Copy link
Member Author

Hi @Shreyansh260, thanks for your interest. The organizations for this year's GSoC weren't announced yet. We don't know, if BRL-CAD can take part.

However, you should start with learning about BRL-CAD and how to build it first. You can do this in any order: Install BRL-CAD from a binary release, do the tutorial, and build the programs from sources afterwards. Or, you start with building and installing the programs, and do the tutorial then.

When you know, how BRL-CAD works, the first step of writing a Python binding would be to design the Python API: How shall the calls to BRL-CAD look like in a Python script?

For discussions, we have our Zulip chat. Please, do any further conversation there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants