Hi! I am new to opensourse and have working knowledge of C++. Is it sufficient for this project or should I learn something new? If yes, what should I learn? Also, how can I start contributing
Hi! I am new to opensourse and have working knowledge of C++. Is it sufficient for this project or should I learn something new? If yes, what should I learn?
I was looking at the last year's project contribution, is there any better way on sourceforge to visualise the changes made to the files?
Right now i have to manually download each patch and open it in gedit.
I recommend to check out the source code with Subversion (https://brlcad.org/wiki/SVN) and to explore the revision history with its tools. There are some Subversion plug-ins for file managers available which provide a GUI for the most important tasks.
Facing this error anyone can help to fix it?
db_recurse() rt_db_get_internal(annot_test) FAIL
rt_db_external5_to_internal5(annot_test): unable to import non-BRL-CAD object, major=255 minor=42
At which context? If I had to guess, I would say you tried to open a file which isn't a binary BRL-CAD database. (But, I'm not sure here.)
actually i was following following the first tutorial of this documentation https://brlcad.org/wiki/Annot
can you tell from where are we suppose to load the circle which is been shown in the first image given in the tutorial.
You can create it by yourself, e.g. as a cylinder: https://brlcad.org/wiki/BRL-CAD_Primitives#rcc
You can find example geometries in the directory, where your BRL-CAD installation is, under share/db.
In general, I recommend to go through the BRL-CAD tutorial (https://brlcad.org/w/images/c/cf/Introduction_to_MGED.pdf), at least the first chapters, to become familiar with mged.
The current approach in the "annot" module of brlcad takes the coordinates as input from the user, through the in command, do the further implementation of other annotation should be implement in the similar manner or can we have mouse click approach in selecting the coordinates to be annoted.
To explain further i have tried to implement the annotation of an angle. in this for annotating any angle the mouse click event is been used to get the coordinates of the points which are to be annotated. https://github.com/css911/Prototypes-for-BRLCAD
We also need to discuss the feasibility of this approach for 3d space and can it be implemented in gsoc period.
Image_example-were-image-annotation-coordinates-are-selected-from-mouse.png
This is the screenshot of the output of the code.(the code is written in python just for a faster Proof of concept discussion :) )
Yes, no, maybe.
It has to have a command line interface. This is compulsory. Not every use of BRL-CAD is via a GUI.
The support of BRL-CAD element manipulation with the mouse opens a new chapter. This would be something for the New BRL-CAD GUI project. It requires for example the determination of all elements near the mouse pointer.
However, I'm surprised that you haven't found any fault with the current implementation of annotations.
Hello shubham! Chetan here. Please can you assign some issue which is of a beginner level and will help me in writing proposal for annotation idea.
It'll be good if you could go through the tutorial series as mentioned by Daniel previously. Once you get familiar with the basic primitives and the workflow, it'll be easier to proceed further. Regarding the 'mouse click' approach, the annot primitive currently has a lot of issues relating to projections, scaling etc. Primary task should be to get rid of the bugs rather than focusing on the user experience. Hope this helps.
Yes, no, maybe.
It has to have a command line interface. This is compulsory. Not every use of BRL-CAD is via a GUI.The support of BRL-CAD element manipulation with the mouse opens a new chapter. This would be something for the New BRL-CAD GUI project. It requires for example the determination of all elements near the mouse pointer.
However, I'm surprised that you haven't found any fault with the current implementation of annotations.
Will focus on understanding the command line interface and will work out how the current implementation can be improved.
As far as I know, the current implementation works for the X Window mode only. Can you confirm this?
As far as I know, the current implementation works for the X Window mode only. Can you confirm this?
Yes!.
As far as I know, the current implementation works for the X Window mode only. Can you confirm this?
There are 3 aspects to the GUI -- what creates the window (this is done by Tk), 3D context drawing (this is our liddm), and 2D drawing (this is our libfb). Tk pretty much only supports X11 on Linux so, by extension, we do too. That said, BRL-CAD's dm/fb interfaces can be seen in src/libdm/dm-.c and src/libfb/fb-.c respectively. One of the goals we have had for a while is a Qt or OSG-based dm & fb interface, then replacing Tk windowing with Qt windowing.
Alternatively, leave dm/fb to old GUI usage and just run with a completely new Qt-based GUI. Also fine. :)
As far as I know, the current implementation works for the X Window mode only. Can you confirm this?
There are 3 aspects to the GUI -- what creates the window (this is done by Tk), 3D context drawing (this is our liddm), and 2D drawing (this is our libfb). Tk pretty much only supports X11 on Linux so, by extension, we do too. That said, BRL-CAD's dm/fb interfaces can be seen in src/libdm/dm-.c and src/libfb/fb-.c respectively. One of the goals we have had for a while is a Qt or OSG-based dm & fb interface, then replacing Tk windowing with Qt windowing.
Hey! thanks @Sean It will help me to understand the code as i was not knowing about the structural breakdown and plus locate in which file the code related to tk is been written.
Glad to help -- a good starting point is probably in seeing main() in src/mged/ged.c -- from there, it eventually tells Tk to run (and a "gui" command displays everything)
Glad to help -- a good starting point is probably in seeing main() in src/mged/ged.c -- from there, it eventually tells Tk to run (and a "gui" command displays everything)
@Sean can you please tell me what is the macro HIDDEN means, i identified it in dm-X.c file, i tried to find its definition by performing a grep search in the terminal, but because of the extensive use i was not able to determine it can you please help me with it. Its usually written as a prefix term for data types such as for example HIDDEN int
Glad to help -- a good starting point is probably in seeing main() in src/mged/ged.c -- from there, it eventually tells Tk to run (and a "gui" command displays everything)
Sean can you please tell me what is the macro HIDDEN means, i identified it in dm-X.c file, i tried to find its definition by performing a grep search in the terminal, but because of the extensive use i was not able to determine it can you please help me with it. Its usually written as a prefix term for data types such as for example HIDDEN int
I meant because of the extensive list from the grep search i was not able to determine it.
@Chetan Shinde HIDDEN == static
that's a simple define so functions can be optionally compiled as static or non-static easily.
it's done for portability and debugging
you can find its definition in the include directory, I believe it's in the main common.h header
Hello everyone, I am student of 2nd year and i am willing to participate in GSOC with ZULIP. Please tell me from where i should start?
from gsoc registration
not joking
sean can u help me with my question?(see above)
Hello everyone, I am student of 2nd year and i am willing to participate in GSOC with ZULIP. Please tell me from where i should start?
Hello Mohit. You're a little early for GSoC and you're in the wrong place if you want to work with the Zulip organization. This chat is for the BRL-CAD project (a computer graphics code).
sean can u help me with my question?(see above)
I see no question from you @Sumagna Das in this general "gsoc" thread. If you're referring to some other thread or not about GSoC, then your messages here are in the wrong thread (called topic hijacking).
GSoC 2022 gonna start from February. I am very much interested to contribute. :grinning:
GSoC 2022 timeline arrived. https://developers.google.com/open-source/gsoc/timeline
@Sean @Daniel Rossberg Are we participating? I am interested for this.
Wow @Sean I am just watching some GSoC videos and here you are in this video https://www.youtube.com/watch?v=YN7uGCg5vLg&ab_channel=GoogleOpenSource :grinning_face_with_smiling_eyes:
Himanshu Sekhar Nayak said:
GSoC 2022 timeline arrived. https://developers.google.com/open-source/gsoc/timeline
Yes we are participating, and I'm glad to hear you're interested! Are you thinking to participate as a mentor or coder? What are your main interests?
That video was put together a few years ago -- I was invited onsite along with the others in that video over the span of a couple days. It was a formal studio production.
Sean said:
Himanshu Sekhar Nayak said:
GSoC 2022 timeline arrived. https://developers.google.com/open-source/gsoc/timeline
Yes we are participating, and I'm glad to hear you're interested! Are you thinking to participate as a mentor or coder? What are your main interests?
That video was put together a few years ago -- I was invited onsite along with the others in that video over the span of a couple days. It was a formal studio production.
I am interested as a coder. Currently I am working on https://github.com/opencax/GSoC/issues/28 with @Daniel Rossberg.
I am very much excited and interested to always be a part of learning process from my mentors. I always wanted to be a part of an organization where I can learn and implement.
I actually love to solve problems using data structures and algorithms in C++ and now I very much interested to contribute and be a part of learning process.
Okay, thanks for the background! I wasn't sure since you were our GCI grand prize winner back in 2019.. that makes you eligible for participating as a mentor or coder. ;)
I've been watching the PR, I'm the other commenter. It's pretty good and you picked a bit of a complex bit of coding to start with.
Aside from the general learning process.. I meant what are your interests coding-wise. What are you thinking of in terms of a project? Have you thought about that yet?
Sean said:
Okay, thanks for the background! I wasn't sure since you were our GCI grand prize winner back in 2019.. that makes you eligible for participating as a mentor or coder. :wink:
:sweat_smile: It's okay. I know you remembered me. :smiley:
Sean said:
Aside from the general learning process.. I meant what are your interests coding-wise. What are you thinking of in terms of a project? Have you thought about that yet?
I love to solve coding problems like DSA questions and currently I am working on a image filter project which basically filters the effects of an image to blur, sepia, grey etc. and working as a team leader. I had looked into the previous project which needs more support to annotations and I think this project will be a great start to learn and work. So far I have managed to draw text with user input of size and angle.
Hey there,
My name is Divyanshu Garg, a student from India
I have experience in MERN stack, MeteorJS, Angular 11 and have a good hand in CSS. I am currently learning React Native.
I am interested in participating in GSOC.
Can you point me to projects that can match my skillset?
Hi @Divyanshu Garg, how about the Online Geometry Viewer OGV (last years project idea description: https://github.com/opencax/GSoC/issues/26 and source code: https://github.com/BRL-CAD/OGV-meteor).
Hi @Daniel Rossberg , thank you for sharing
I will start with the project setup and grab an issue asap
Hey @Divyanshu Garg if you run into any trouble. You can share that here in the channel. I can help you if you need me.
Sure i will, Thanks @Amanjot Singh
Hello!
This is Archit Gosain, a second-year student from IIT Roorkee, and I am interested in contributing to this org.
I am confident in C++, java and javascript. I also have a vague idea of the graphics pipeline.
Can you please point to me some issues to get started?
Hi @Aviii, you should start with installing BRL-CAD (https://sourceforge.net/projects/brlcad/files/) and going through the mged tutorial (https://brlcad.org/w/images/c/cf/Introduction_to_MGED.pdf).
Divyanshu Garg said:
Hey there,
My name is Divyanshu Garg, a student from India
I have experience in MERN stack, MeteorJS, Angular 11 and have a good hand in CSS. I am currently learning React Native.I am interested in participating in GSOC.
Can you point me to projects that can match my skillset?
Hi @Divyanshu Garg FYI, another project we may end up with on our list is a complete rebuild of our project website (using CaI and integrated with CI/CD).
Hey @Sean, Thank you for sharing
I will definitely take a look at it once it is listed
Sean said:
Hi Divyanshu Garg FYI, another project we may end up with on our list is a complete rebuild of our project website (using CaI and integrated with CI/CD).
What is Cal? Never heard of it. I would suggest Hugo or something similar.
Dashamir Hoxha said:
What is Cal? Never heard of it. I would suggest Hugo or something similar.
lol, sorry - I meant "IaC" .. "Infrastructure as Code". I don't know why my brain swapped them. I.e., having the website exist in a repo and get compiled/generated/installed/etc automatically via committed files, so that it all works together and generated products come from primary sources, etc. A start is just making sure the whole website lives in revision control (which it partially does now) and applies the same theme.
I love Hugo. :)
For all the people that are new to BRL-CAD, I would like to kindly suggest to use these docs as well: https://brl-cad.github.io/docs/ They are not better or more complete than the other docs, but the formatting maybe is a bit better and more user-friendly.
If you notice any mistakes in the docs, you can also contribute any corrections (look at the link "Edit this Page" on the top-right corner). After making any corrections you can submit a pull-request.
You may also give a try to the new Wiki site: https://brl-cad.github.io/wiki/
There are a lot of things here that may need to be corrected. The workflow is the same: you click on the Edit button and submit a pull request with your modifications.
@starseeker any idea why the latest build is failing in Visual Studio 2022? Screenshot-1.png
Himanshu Sekhar Nayak said:
starseeker any idea why the latest build is failing in Visual Studio 2022? Screenshot-1.png
This page has some info about installation:
https://brl-cad.github.io/docs/wiki/Newbie.html#_installation
However I think that a separate page of the docs is needed, that describes the installation steps.
For the time being, this has some more details:
https://github.com/BRL-CAD/brlcad/blob/main/INSTALL
Dashamir Hoxha said:
Himanshu Sekhar Nayak said:
starseeker any idea why the latest build is failing in Visual Studio 2022? Screenshot-1.png
This page has some info about installation:
https://brl-cad.github.io/docs/wiki/Newbie.html#_installationHowever I think that a separate page of the docs is needed, that describes the installation steps.
For the time being, this has some more details:
https://github.com/BRL-CAD/brlcad/blob/main/INSTALL
Ahh my bad, I posted here instead of general. It is able to build in 2019 version of vs but not now in 2022 version? https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/c5105?view=msvc-170
I've not attempted a Visual Studio 2022 build, so it wouldn't be too surprising if there are issues. That screenshot does not show the errors - you'll want to check the output window. Sort in build order, and look for the first error.
@starseeker I would like to use BRL-CAD for raytracing, is there any performance data available such as how many ray can be traced per second? Further more, is that possible for me to get a relative stand-alone lib for ray tracing so i can call it from my own program?
librt and its dependencies are the core of the raytracing engine - you can extract those for your own application. As for performance data, you'll want to ask @Sean about that - he's the one with the best info.
@starseeker our build appears to be in a sad state for msvc 2019... of our 10 tamu students, I think 4 encountered *unique build errors (out of 6-7 failures total, iirc). A couple resolved themselves by "trying again" and it mysteriously working. I'm getting log files from them to see if any can be traced down, so the build can be made more robust.
@James raytracing performance of course will vary immensely depending on the geometry type being ray traced and what shotline information is needed (e.g., first hit vs full path). BRL-CAD's "librt" library is the ray tracing library and is such a library specifically designed for embedding into programs like you're suggesting (it relies on 3 other librariesL libbu, libbn, libg for utility, numerics, and geometry respectively).
In general, you can except most models to be on the order of 1-100M rays/s depending on the type of geometry and number of cores. NURBS will be the slowest, triangle meshes ray traced with our ADRT method are the fastest, and CSG Booleaned implicit geometry is typically in the middle.
@Sean That (Windows build failures) may be something to do with some of the generated files in the stepcode build. I've had a heck of a time getting those things to write reliably before compiling - some of the clang static analyzer build failures appear to be due to that, but I'm at something of a loss as to what else I can do to ensure they are fully generated... I thought I had sentinel files being written after the generated files to try and ensure the main files are fully written before the build system thinks it is OK to continue. I may have missed one, or maybe that mechanism isn't sufficient...
@James, does this: https://sourceforge.net/projects/brlcad/files/BRL-CAD%20Runtime%20Libraries/7.32.0/ meet your requirements regarding the stand-alone library?
@Sean I am comfortable with C++11-14, OOP, STL, Data structure and algorithms. Currently I am learning Qt. And I saw https://github.com/opencax/GSoC/issues/27. This project can be perfect suit for me I guess.
Thanks @Daniel Rossberg too :grinning: for always helping me out. I should get started and start exploring.
@Himanshu Sekhar Nayak and here I thought you were more interested in annotations, heh. no problem though, any area of interest is good! note that the ideas list are just ideas. any continuation of a prior GSoC project is also a good idea, and that's a long list. ideas from participants can also work if they are specific and well-researched.
Sean said:
Himanshu Sekhar Nayak and here I thought you were more interested in annotations, heh. no problem though, any area of interest is good! note that the ideas list are just ideas. any continuation of a prior GSoC project is also a good idea, and that's a long list. ideas from participants can also work if they are specific and well-researched.
Yes, I was working in annotations project but I saw requirements is vector mathematics and I thought I may be not able to contribute on that area. And @Daniel Rossberg helped me out to recognize projects which will suit to my area of interest.
Hello mentors @Sean and @Daniel Rossberg .I am Aniket johri ,i read the Python Bindings repos given on github for gsoc'22 and found some very good work ,especially the tcl scripting repo. I wanted to ask if this year's task would revolve around existing work or will it be different?
Hi @Aniket Johri! What tcl scripting repo? This year's task will be whatever you propose. For python bindings, it makes sense to leverage some of the progress made in either/both of the prior python efforts, but you can scope it to your interests.
For example, I'd want to focus on getting script objects working, so you can define entities with a script (python, ged, etc) and have them generate and raytrace automatically, but that's just me. Others have been working on making a pure Python API for creating geometry. Another looked at developing a python workbench in FreeCAD for BRL-CAD. A long while back, there was initial effort to try and use SWIG. There's lots of different directions that could be taken.
Sean said:
Hi Aniket Johri! What tcl scripting repo? This year's task will be whatever you propose. For python bindings, it makes sense to leverage some of the progress made in either/both of the prior python efforts, but you can scope it to your interests.
i was talking about this tcl scripting
repo https://github.com/nmz787/python-brlcad-tcl
hii i wanted to work upon Simple Library Manager / Downloader for OpenSCAD scripts #57 discovering and installing libraries Arduino IDEs Library Manager and installed Arduino , bridge library, took some overall idea, now can we discuss regarding its details, though it was there but very I needed some good overview of the technical approach and a development timeline.
@paul you'll want to join openscads IRC channel for your discussion with their community.
Hello there,
I'm Tambe Salome, I'm interested in contributing to BRL-CAD during this period of GSOC. I have been programming in C for a while, but I have not had the opportunity to work on any real world project so, I think this would be a great start. I generally have an interest in Algorithms and Data structures and I'm very open to learning. I'm interested in the BRL-CAD annotation support enhancement project. I'll appreciate if I can be pointed to any microprojects that can help me better understand this project and also help setting up.
Thanks
Hi @Tambe Salome, welcome at the BRL-CAD project!
BRL-CAD is indeed a software well suited to improve your capabilities in C. Especially if you want to work on the kernel (as the annotation project would be), I recommend to start with learning how BRL-CAD works:
Install BRL-CAD. You can find the necessary installation packages at https://sourceforge.net/projects/brlcad/files/ This will install over 200 programs. Most of them are small command line tools. The most interesting for you are our old but still heavily used GUI mged and the more modern GUI archer. Go through the mged tutorial https://brlcad.org/w/images/c/cf/Introduction_to_MGED.pdf
Gain an overview of the existing documentation at https://brlcad.org/wiki/Main_Page
To start with programming download the source code from https://github.com/BRL-CAD/brlcad and compile and install the programs (https://brlcad.org/wiki/Compiling).
Regarding the annotations, you can create some in mged with in <object name> annot ...
to see the current state of usability and explore how they are implemented, e.g. in src/librt/primitives/annot/annot.c.
Hi @Daniel Rossberg , thank you for this.
I will make sure to set up, understand what is happening and start contributing
hello,i am Anuj
I would like to work on cabinet tool for the arch workbench.I am a mechanical engineering student and thus would love to contribute to this project :)
Hi @Anuj Kumar ! It sounds like you're interested in working on FreeCAD? If so, please join their IRC channel linked at https://opencax.github.io
Hey @Daniel Rossberg @Sean @Amanjot Singh , I have understood the flow for the OGV-Viewer
I have also checked the collections for the backend and I will start working on it soon
I will keep sharing the progress here
@Divyanshu Garg Thanks for the update. Please try your best to submit a useful pull request (PR) so we can get a sense of your abilities.
Yeah, I was thinking about that but I saw this issue https://github.com/opencax/GSoC/issues/26 and found that we are planning a rewrite for the whole project. What if I send a PR with the backend setup?
@Divyanshu Garg a rewrite is just one possible option -- it's not strictly necessary. You could very well propose a different related development direction. From my perspective, it's most important that there be focus and consistency towards end-user usability, and proposing that requires being familiar with its current status.
As for a PR, it should be something relatively small, meaningful, and complete. Like a bug fix, or a small feature, or some succinctly indepenent reviewable improvement.
The code has been rewritten at least twice already so that is most definitely not my interest or priority, but then I'm not likely mentoring that project. As I said, if I were, I'd want to know what's going to be done that's different from the previous GSoCs. Rewriting for the sake of a new technology should not be the goal.
@Divyanshu Garg I agree with what Sean said. There are some issues that you can look at in the project repository. You can even open new issues if you see any other than those. I'm also here to help you with that if you face any problems with the project. Looking forward to get reply from you on this.
Our main focus is to make this project live and competitive to the other 3d viewers online.
Hey @Sean I completely agree
I have found an issue in the latest code related to liking the uploaded model
Peek-2022-03-26-23-16.gif
I am working on a fix and will send a PR asap. Thanks.
CC @Amanjot Singh
That's good to see you were able to install the project and found an issue as well. I would suggest opening the issue on Github before sending the PR. @Divyanshu Garg
Hey @Amanjot Singh
I have successfully fixed this issue and sent a PR-112
Thanks.
can someone help me with running python code for brlcad bindings.I am getting errors while running the code given on github repos.
Aniket Johri said:
can someone help me with running python code for brlcad bindings.I am getting errors while running the code given on github repos.
Can you post your issues you are facing?
Sean said:
Divyanshu Garg said:
Hey there,
My name is Divyanshu Garg, a student from India
I have experience in MERN stack, MeteorJS, Angular 11 and have a good hand in CSS. I am currently learning React Native.I am interested in participating in GSOC.
Can you point me to projects that can match my skillset?Hi Divyanshu Garg FYI, another project we may end up with on our list is a complete rebuild of our project website (using CaI and integrated with CI/CD).
Hey, @Sean I was checking out the idealist, by any chance are we planning to work on this one?
Amanjot Singh said:
Aniket Johri said:
can someone help me with running python code for brlcad bindings.I am getting errors while running the code given on github repos.
Can you post your issues you are facing?
Screenshot-2022-03-29-at-1.38.07-PM.png
I followed the steps given on python tcl repo(https://github.com/nmz787/python-brlcad-tcl) but still getting this error.
@Divyanshu Garg the idea was not written up and posted, but that does not mean it cannot be proposed. It can and I would welcome such a proposal, particularly if it can describe in depth what would be done.
@Aniket Johri I'm not familiar with that python effort, but at a glance it looks like there's a brlcad_tcl code right there in that project and that's what it's saying it cannot find. I would think that's some simple search-path issue, however python performs imports.
Sean said:
Divyanshu Garg the idea was not written up and posted, but that does not mean it cannot be proposed. It can and I would welcome such a proposal, particularly if it can describe in depth what would be done.
That is great.
But i wanted to ask about some context related to this idea
Like what do we want to build?
As per my understanding, we are planning to refresh this https://brlcad.org/ site with some new UI/UX.
It would be great if I could know more about what more we want to include and I would love to submit a proposal for this one.
Of course, we also want to include CI/CD for automatic deployment
Divyanshu Garg said:
Hey Amanjot Singh
I have successfully fixed this issue and sent a PR-112
Thanks.
PR was merged.
Sean said:
Aniket Johri I'm not familiar with that python effort, but at a glance it looks like there's a brlcad_tcl code right there in that project and that's what it's saying it cannot find. I would think that's some simple search-path issue, however python performs imports.
also i am getting errors while running the ctypes code available on python brlcad repo
Screenshot-2022-03-31-at-1.10.08-AM.png
@Aniket Johri like I said, I'm not very familiar with that effort. I'd think you'd almost certainly need to have BRL-CAD compiled and installed if you didn't do that, and then you'd have to generate the ctypes bindings on the BRL-CAD libs (e.g., libwdb, librt, libbu, etc).
Sean said:
Aniket Johri like I said, I'm not very familiar with that effort. I'd think you'd almost certainly need to have BRL-CAD compiled and installed if you didn't do that, and then you'd have to generate the ctypes bindings on the BRL-CAD libs (e.g., libwdb, librt, libbu, etc).
i have already installed brlcad and followed the steps given on https://medium.com/@Mr_Jaypee/brl-cads-python-procedural-geometry-990e3c286a63 suggested by you for running python brlcad. This is made for the older versions of brlcad and due to that I am unable to run it on latest version. Can you please guide me if there is any newer version of this python brlcad module that was worked on during gsoc 2018
@Aniket Johri A lot has changed since 2018, including Python itself, and I'm not aware of a newer version of the BRL-CAD Python bindings. Therefore, we are looking for a contributor who can help us with this. Can python-brlcad be ported to current versions of Python, BRL-CAD and ctypesgen? Or, do you recommend another solution?
@Daniel Rossberg @Sean The last Python BRL-CAD module (https://github.com/kanzure/python-brlcad) is not compatible with Python3 and is full of bugs, also is not very well documented. So I am planning on making a new Python BRL-CAD module from scratch which will be compatible with Python3 and well documented.For this I am not sure if using ctypesgen will be beneficial or Tcl scripting ,can you help me on this? Right now I am doing research on this and will try to give you guys a proposal in a few days.
@Aniket Johri There's a decent overview of all the options at https://realpython.com/python-bindings-overview/
Personally, I would look into SWIG ( https://swig.org ) as it's been around forever as a toolkit for binding C/C++ to other languages, or ctypes to try and keep it runtime pure. I'd probably focus on BRL-CAD's libged library and the ability to call any ged command via python.
Sean said:
Aniket Johri There's a decent overview of all the options at https://realpython.com/python-bindings-overview/
Personally, I would look into SWIG ( https://swig.org ) as it's been around forever as a toolkit for binding C/C++ to other languages, or ctypes to try and keep it runtime pure. I'd probably focus on BRL-CAD's libged library and the ability to call any ged command via python.
Thanks, let me work on this and give you a proposal then.
Hey @Daniel Rossberg @Amanjot Singh
I have sent another PR https://github.com/BRL-CAD/OGV-meteor/issues/124
This fixed a UI issue related to outside clicks for dialogs
Please review
@Sean @Daniel Rossberg For the BRL-CAD python Bindings project I am thinking of continuing previous efforts of tcl scripting approach, since it already is compatible with Python3 and I think introducing a new approach or a new solution to this issue would be inefficient for the users.The current tcl scripting module wraps very less amount of primitives as of today. Could i give you a proposal regarding this in 1-2 days? Also if there's any suggestion you guys would like to make are openenly accepted.
Thanks
@Aniket Johri you'll have to refresh my memory on "previous efforts of tcl scripting approach" and what that means, which coding effort. Maybe even better would be to describe the approach.
As for proposal, you're welcome to submit that at any time (before the deadline) or to post up drafts if you want feedback.
Sean said:
Divyanshu Garg the idea was not written up and posted, but that does not mean it cannot be proposed. It can and I would welcome such a proposal, particularly if it can describe in-depth what would be done.
Hey @Sean
I was working on my proposals and I am planning to put one of my proposals for this one as well. But before that, I wanted to confirm some things because I had a vision about what can be done but I don't have clarity about some of the things.
What do you suggest, please share your opinion on this one....
Sean said:
Aniket Johri you'll have to refresh my memory on "previous efforts of tcl scripting approach" and what that means, which coding effort. Maybe even better would be to describe the approach.
This approach revolves around tcl script and gives output in STL format(3D output). In brief, the python code creates a file with .g extension which further creates a tcl script describing the primitives. This tcl script then provides us with a 3D model in STL format.
@Divyanshu Garg how many are you working on? Helps to know in case there’s a conflict what your preferences are. To your questions: 1) yes, 2) probably would prefer Hugo but open to ideas — just do not want a cms like Wordpress or Drupal, 3) wireframe sounds fantastic and can be a rough idea that is refined in the bonding period.
@Aniket Johri that doesn’t sound right to me. Maybe check and see if the python generates and runs a tcl script?
@Sean Currently i am working on 2
First is OGV and second is this one
About the cms part i personally don't prefer WordPress and Drupal these situations.
About the wireframe, i will start putting one together and get it here asap
Thanks
From a planning perspective, it’s more important to me that we treat the website like code and plan for staged deployment. A critical requirement will be integrating with the GSoD documentation effort so that docs, api, and other website resources are deployed continuously.
@Sean Ohh yes, my bad. python generates a tcl script
@Sean @Daniel Rossberg would using tcl scripting and giving a STL format output be a wrong approach towards python bindings? Should I go with a different approach?
Sean said:
From a planning perspective, it’s more important to me that we treat the website like code and plan for staged deployment. A critical requirement will be integrating with the GSoD documentation effort so that docs, api, and other website resources are deployed continuously.
Yeah, it would be more like in versions of the build because this would be a whole new container so as long as we don't have the version 1.0 we can't use that in production and yes there would be a complete plan for what parts need to be covered first depending on the priority based on code.
As for the GSoD part, We can definitely include that in one of the phases we have in GSoC
I wanted to confirm that https://brlcad.org/wiki/Main_page this it the section where we find GSoD documentation and other stuff
And these are mostly in PDF format so I guess we might integrate pdf viewer in the site to view these document files.
I am planning to have a separate page to showcase all the primary documents with a embedded viewer if that is something we want to do
or if we are planning to integrate md file method to show documentation documents in webpages
thoughts?
Hey @Sean
I have successfully put together a wireframe
https://www.figma.com/file/nI1IDdPUHRr2vzBNOLIr60/BRL-CAD-Wireframe?node-id=0%3A1
Please let me know how it looks and I will start working on a proposal for this one
I have managed to add existing content in the wireframe with some new sections and modern UI/UX.
Thanks
@Aniket Johri well that entirely depends what you'd be planning to do to extend the work. I don't find that approach particularly compelling (it's not pure python, it's not coupled to API so it stays in sync, it requires two steps (generate+run script) which means it needs runtime tools, not just libs, ...) but not opposed if there's a good objective defined. What would the goal(s) be?
@Divyanshu Garg no, the wiki is an aspect of the docs, but it's not the main effort. the docs are in a process of transitioning as they exist in the brlcad repo in doc/ (https://github.com/BRL-CAD/brlcad/tree/main/doc) especially the docbook subdir but started a migration to the brlcad-docs repo (https://github.com/BRL-CAD/brlcad-docs/) . That's the primary starting point for continuation. Can read up more on https://brlcad.org/wiki/Google_Season_of_Docs/Proposal
a mock up migration of the docs and wiki were even deployed experimentally. the main antora instance is no longer staged, but you can see the wiki at https://github.com/BRL-CAD/brlcad-docs/wiki
Umm so what I am understanding from this is that we want to integrate this documentation (https://github.com/BRL-CAD/brlcad-docs/wiki) to the main project page right?
No, not right. Wiki is only one aspect of the docs. There are other aspects. The docs in the brlcad-docs repo are the most important part for integration with any new website refresh.
the non-wiki docs are curated. the wiki docs are not curated.
Sean said:
Aniket Johri well that entirely depends what you'd be planning to do to extend the work. I don't find that approach particularly compelling (it's not pure python, it's not coupled to API so it stays in sync, it requires two steps (generate+run script) which means it needs runtime tools, not just libs, ...) but not opposed if there's a good objective defined. What would the goal(s) be?
well I think a lot can be achieved using this, but like you said it's not the perfect approach. Also I think using script would in general require 2 steps and issue with using ctypes or any other wrapper would require timely changes with respect to original code. If there's any approach you have in mind for this project,please let me know.
Otherwise, using tcl script can result in a really good product.
Thanks
Sean said:
No, not right. Wiki is only one aspect of the docs. There are other aspects. The docs in the brlcad-docs repo are the most important part for integration with any new website refresh.
So, these are the docs https://github.com/BRL-CAD/brlcad-docs/ which we are targeting to integrate with the main site.
If this time I mentioned the right docs
I suppose we have to do something like https://github.blog/2016-08-22-publish-your-project-documentation-with-github-pages/
@Aniket Johri I agree a lot can be achieved but you will need to define exactly what that will be.. it can’t be open-ended undefined. The only other approaches are the ones mentioned: generating automatically via swig, or updating to a ctypes approach learning from the prior ctypesgen effort(ie pure python bindings)
No matter what path you propose, it needs to be interesting and doable to you, and you’ll need to define specific objectives, milestones, and major tasks
The tcl approach can be perfectly fine if you say in detail what you plan to do, same with swig or any other related proposal
@Divyanshu Garg that can work or can be used as the test deployment site and brlcad.org is used for the production deployment. It’s flexible. You just will want to have one space for test deployment and a separate for final, and ideally both are editable in some manner (even if the edit button simply sends them to GitHub).
I want to get to the point that the majority of not all of the website is generated automatically from source doc files, where it generates out a Hugo site that is integrated with antora’s output somehow. Or something else altogether but still integrating the docs
Sean said:
Aniket Johri I agree a lot can be achieved but you will need to define exactly what that will be.. it can’t be open-ended undefined. The only other approaches are the ones mentioned: generating automatically via swig, or updating to a ctypes approach learning from the prior ctypesgen effort(ie pure python bindings)
OK, but the ctypes work has been done and the only problem with it is non-compatibility with python3. So i don't think there is much for me to learn or explore in that approach.
let me send you a proposal draft for review .
Thanks
@Sean here's my proposal draft for tcl approach for review.Please let me know if I should add something or make changes
https://docs.google.com/document/d/1j3qY5uN1dg9Torh1Bd4CpBk-jUUsTxCAItaCcJ6m-I4/edit#
Sean said:
I want to get to the point that the majority of not all of the website is generated automatically from source doc files, where it generates out a Hugo site that is integrated with antora’s output somehow. Or something else altogether but still integrating the docs
The docs are available here:
They just need to be linked from the main website, no other integration is needed.
Hey @Dashamir Hoxha
Thank you for sharing
So basically we have the documentation site ready and we have to link it with the main site right?
Just a small thing
are https://github.com/BRL-CAD/brlcad-docs/ and https://github.com/BRL-CAD/docs both the same? cause the first one is mentioned by Sean and the second one is mentioned by you, just want to make sure if these are the same
The documentation still needs to be improved, of course, but the documentation site is ready.
Both repos are exactly the same. I cloned the first one and created the second one due to some technical reasons.
The integration would be for the docs to not reside elsewhere, merely linked, but to actually be on brlcad.org so it can be presented uniformly, so content can be managed alongside docs. I think keeping GitHub.io as the dev/staging area or editing are would work, but then there’s at least a little work to deploy mirroring.
Good evening
->I am Akkul currently pursuing my bachelor of technology
(computer science domain)
->I have a good knowledge of c cpp html css and currently learning js
->I am also willing to contribute in gsoc this summer
->I am a beginner in opensource and would love to gain some experience through your organization
->Could anyone please help me to get started??
->I would greatly appreciate it if anyone got back to me soon.
regards
AKKUL GAUTAM said:
Good evening
->I am Akkul currently pursuing my bachelor of technology
(computer science domain)
->I have a good knowledge of c cpp html css and currently learning js
->I am also willing to contribute in gsoc this summer
->I am a beginner in opensource and would love to gain some experience through your organization
->Could anyone please help me to get started??
->I would greatly appreciate it if anyone got back to me soon.
regards
Hi there. Welcome to our organization.
First you should start with installing the BRL-CAD programs. You can find the installation packages at https://sourceforge.net/projects/brlcad/files/. Go through the mged tutorial https://brlcad.org/w/images/c/cf/Introduction_to_MGED.pdf which is an old GUI where you will get to know how to create primitives, assign material properties, and ray tracing and many more.
Gain an overview of the existing documentation at https://brlcad.org/wiki/Main_Page.
To start with programming download the source code from https://github.com/BRL-CAD/brlcad and compile and install the programs (https://brlcad.org/wiki/Compiling). You can use https://brlcad.org/wiki/Deuces as a starter for small programming tasks.
If you have a question, don't hesitate to ask. We will be happy to help.
Hello Everyone,
I am Chandrakant Jena, currently a Computer Science student at Odisha University of technology and research.I found this organization really interesting as it is an umbrella organization and one of the oldest participating organizations.
My major is c++ and am learning qt and planning to apply for GSoC this year.
May I get some idea list of projects related to qt, I Shall be highly grateful.
Hi @Chandrakant Jena, sorry for the late reply. Everybody seems to be busy here - including myself.
The BRL-CAD core is mainly written in C, but it has some C++ parts too. Qt us used e.g. in qged and arbalest.
However, you should familiarize yourself first with the basics. See https://brlcad.zulipchat.com/#narrow/stream/104062-general/topic/gsoc/near/314340544 for a how-too. Our (not yet updated) GSoC ideas list is https://github.com/opencax/GSoC/issues?q=is%3Aissue+is%3Aopen+label%3A%22Project%3A+BRL-CAD%22.
Daniel Rossberg said:
Hi Chandrakant Jena, sorry for the late reply. Everybody seems to be busy here - including myself.
The BRL-CAD core is mainly written in C, but it has some C++ parts too. Qt us used e.g. in qged and arbalest.
However, you should familiarize yourself first with the basics. See https://brlcad.zulipchat.com/#narrow/stream/104062-general/topic/gsoc/near/314340544 for a how-too. Our (not yet updated) GSoC ideas list is https://github.com/opencax/GSoC/issues?q=is%3Aissue+is%3Aopen+label%3A%22Project%3A+BRL-CAD%22.
Thanks @Daniel Rossberg
Last updated: Jan 09 2025 at 00:46 UTC