https://brlcad.org/w/api.php?action=feedcontributions&user=Sean&feedformat=atomBRL-CAD - User contributions [en]2024-03-28T23:43:30ZUser contributionsMediaWiki 1.32.2https://brlcad.org/w/index.php?title=User:SimonNguyen&diff=12644User:SimonNguyen2024-03-07T01:17:02Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:LarryBates&diff=12643User:LarryBates2024-03-07T01:16:58Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:WayneShelton&diff=12642User:WayneShelton2024-03-07T01:16:56Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:MarvinCasey&diff=12641User:MarvinCasey2024-03-07T01:16:53Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:AngelParsons&diff=12640User:AngelParsons2024-03-07T01:16:49Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:FloydWagner&diff=12639User:FloydWagner2024-03-07T01:16:46Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:WmRhodes&diff=12638User:WmRhodes2024-03-07T01:16:43Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:ManuelWalters&diff=12637User:ManuelWalters2024-03-07T01:16:39Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:CliffordMassey&diff=12636User:CliffordMassey2024-03-07T01:16:36Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:EdmundVargas&diff=12635User:EdmundVargas2024-03-07T01:16:33Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:SalvadorWelch&diff=12633User:SalvadorWelch2024-03-07T01:16:30Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:SalvadorNeal&diff=12634User:SalvadorNeal2024-03-07T01:16:29Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:JonathanDoyle&diff=12632User:JonathanDoyle2024-03-07T01:16:24Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:SalvadorBarton&diff=12630User:SalvadorBarton2024-03-07T01:16:20Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:WesleyDuncan&diff=12631User:WesleyDuncan2024-03-07T01:16:17Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:KameronPate&diff=12629User:KameronPate2024-03-07T01:16:13Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:AlexanderMccoy&diff=12628User:AlexanderMccoy2024-03-07T01:16:12Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:RobertoMoody&diff=12627User:RobertoMoody2024-03-07T01:16:08Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:DarylFoster&diff=12626User:DarylFoster2024-03-07T01:16:04Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:NickRios&diff=12625User:NickRios2024-03-07T01:15:33Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:PrestonPierce&diff=12624User:PrestonPierce2024-03-07T01:15:11Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:StevenLucas&diff=12623User:StevenLucas2024-03-07T01:15:07Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:EwanAllen&diff=12622User:EwanAllen2024-03-07T01:14:59Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:RossDixon&diff=12621User:RossDixon2024-03-07T01:14:53Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:JoeyPatton&diff=12620User:JoeyPatton2024-03-07T01:14:48Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:NicolasBell&diff=12619User:NicolasBell2024-03-07T01:14:44Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:WillisMccarthy&diff=12618User:WillisMccarthy2024-03-07T01:14:39Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:VanStokes&diff=12617User:VanStokes2024-03-07T01:14:33Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:RandallWeber&diff=12616User:RandallWeber2024-03-07T01:14:28Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:AlSullivan&diff=12615User:AlSullivan2024-03-07T01:14:23Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:EliasMorales&diff=12614User:EliasMorales2024-03-07T01:13:53Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:JayTalbot&diff=12613User:JayTalbot2024-03-07T01:13:46Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:ByronFields&diff=12612User:ByronFields2024-03-07T01:13:41Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:ClayFord&diff=12611User:ClayFord2024-03-07T01:13:35Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:VernonJacobs&diff=12610User:VernonJacobs2024-03-07T01:13:29Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:JayJoyce&diff=12609User:JayJoyce2024-03-07T01:13:24Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:DennisMckinney&diff=12608User:DennisMckinney2024-03-07T01:13:18Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:BruceGraves&diff=12607User:BruceGraves2024-03-07T01:13:12Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=User:LloydCole&diff=12606User:LloydCole2024-03-07T01:13:05Z<p>Sean: Blanked the page</p>
<hr />
<div></div>Seanhttps://brlcad.org/w/index.php?title=Google_Summer_of_Code/2024&diff=12601Google Summer of Code/20242024-02-16T22:37:19Z<p>Sean: Created page with "We applied as an umbrella, with orgs announced on 20 Feb 2024. We hope we get to work with you!"</p>
<hr />
<div>We applied as an umbrella, with orgs announced on 20 Feb 2024. We hope we get to work with you!</div>Seanhttps://brlcad.org/w/index.php?title=Google_Summer_of_Code&diff=12600Google Summer of Code2024-02-16T22:35:36Z<p>Sean: </p>
<hr />
<div>= Overview =<br />
<br />
Since 2005, Google has run an awesome open source software development program originally just for ''students'', but now any ''contributor'' called the [http://code.google.com/soc/ Google Summer of Code] (GSoC). Under this program, Google funds people to write code for open source projects during the northern hemisphere's summer timeframe:<br />
<br />
* The contributor writes a project proposal for BRL-CAD.<br />
** Sometimes their project idea caters to something the open source organization suggests and sometimes it's a contributor's idea.<br />
* Proposals are reviewed, evaluated, and ranked by the open source organization's mentors.<br />
* Google allocates a certain number of slots to each participating organization<br />
** That, in turn, determines how many contributors will work with that organization.<br />
<br />
=Getting Started [[Summer_of_Code/Checklist|Checklist]]=<br />
<br />
Whether you're applying or accepted, we've itemized everything you need to do into a simple '''[[Summer_of_Code/Checklist|CHECKLIST]]'''. We're here to help you become new open source developers, so don't be shy if you have any questions.<br />
<br />
== The Selection Process ==<br />
<br />
GSoC is about getting people involved and contributing to open source over the long-term. As such, we heavily weight our application selection process towards people that are interested in remaining involved in BRL-CAD and open source software development long after GSoC has ended. <br />
<br />
'''''GSoC is not a job.''''' If you think this is just a summer job, then GSoC is probably not for you. It's only like a job in terms of planning your time commitment over the summer.<br />
<br />
Additionally, submissions are graded based on perception of the submitter's abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, and overall interest in having such modifications made to BRL-CAD. Particular notice is made of applicants that are responsive to questions and readily interactive in the IRC channel or on the mailing list. Communication is a great thing.<br />
<br />
Just about every GSoC organization receives considerably more project proposals than can be accepted. Every application gets read multiple times and reviewed in detail. Of those applications, only a small subset are selected so keep in mind that the selection process is rather competitive and difficult. <br />
<br />
Whether or not you are accepted, contributing to open source outside of GSoC is one of the main goals of the program and is the best way to be noticed and get your proposal accepted. Keep that in mind. Thanks for your interest and we look forward to working with new BRL-CAD developers!<br />
<br />
=BRL-CAD participation in GSoC =<br />
<br />
You can check out promotional flyers that have been prepared in the past on our [[Google_Summer_of_Code/Flyers|GSoC flyers]] page.<br />
<br />
==[[Google_Summer_of_Code/2024|GSoC 2024]]==<br />
<br />
Our umbrella hopes to select 7 contributors for Manifold, IfcOpenShell, BRL-CAD, KiCad, Appleseed, and OpenSCAD.<br />
<br />
==[[Google_Summer_of_Code/2023|GSoC 2023]]==<br />
<br />
Our umbrella selected 5 contributors that prepared proposals for IfcOpenShell, BRL-CAD, KiCad, Appleseed and OpenSCAD.<br />
<br />
==[[Google_Summer_of_Code/2022|GSoC 2022]]==<br />
<br />
Our umbrella selected 7 students that prepared proposals for IfcOpenShell, BRL-CAD, KiCad, LibreCAD and OpenSCAD.<br />
<br />
==[[Google_Summer_of_Code/2021|GSoC 2021]]==<br />
<br />
With global turmoil in full effect, we again reigned back participation, only accepting 6 students, all of which were successful. Students worked with IfcOpenShell, FreeCAD, OpenSCAD, and BRL-CAD.<br />
<br />
==[[Google_Summer_of_Code/2020|GSoC 2020]]==<br />
<br />
We reigned participation back a bit in 2019, accepting 8 students, all of which were successful. Students worked with FreeCAD, BRL-CAD, OpenSCAD, and LibreCAD.<br />
<br />
==[[Google_Summer_of_Code/2019|GSoC 2019]]==<br />
<br />
Our umbrella selected 10 students that prepared proposals for BRL-CAD, OpenSCAD, LibreCAD, FreeCAD, and Slic3r. students passed successfully.<br />
<br />
==[[Google_Summer_of_Code/2018|GSoC 2018]]==<br />
<br />
Our umbrella selected 9 students that prepared quality proposals for BRL-CAD, FreeCAD, LibreCAD, and Slic3r. By the end of GSoC, all but 1 passed successfully.<br />
<br />
==[[Google_Summer_of_Code/2017|GSoC 2017]]==<br />
<br />
Our umbrella accepted 10 students that prepared quality proposals and demonstrated commitment. Students were selected for LibreCAD, Slic3r, BRL-CAD, and FreeCAD.<br />
<br />
==[[Google_Summer_of_Code/2016|GSoC 2016]]==<br />
<br />
This year we tamed it back to 9 students working on projects for BRL-CAD, OpenSCAD, LibreCAD, and FreeCAD (new partner). We were not going to apply at all, but we also didn't want to lose momentum with our umbrella partners or leave them to fend for themselves.<br />
<br />
==[[Google_Summer_of_Code/2015|GSoC 2015]]==<br />
<br />
This year we had a whopping 12 students accepted to work on projects. As an umbrella organization, we expanded our cooperation to include LinuxCNC.<br />
<br />
==[[Google_Summer_of_Code/2014|GSoC 2014]]==<br />
<br />
Hoping to foster collaboration and communication, we actively reached out to a number of related and active open source CAD communities. We expanded our umbrella to include cooperation with STEPcode, LibreCAD, and OpenSCAD.<br />
<br />
==[[Google_Summer_of_Code/2013|GSoC 2013]]==<br />
<br />
Middle ground, not too many, not too few. It was just right. We accepted seven students that all participated successfully. This was also our first year participating as an umbrella organization, coordinating one of those slots with the STEPcode community.<br />
<br />
==[[Google_Summer_of_Code/2012|GSoC 2012]]==<br />
<br />
This year, we aimed big. Lots of mentors, lots of students. Compared to some of the larger notable orgs, students had a really great chance of acceptance if they were actively communicative and highly passionate about their project idea and BRL-CAD. Overall, we accepted eleven students.<br />
<br />
==[[Google_Summer_of_Code/2011|GSoC 2011]]==<br />
<br />
{|align="right"<br />
|[[Image:BRL-CAD_GSoC2011_flyer.png|thumb|left|165px]]<br />
|}<br />
<br />
After a year off focusing on a major development initiative, BRL-CAD once again was accepted to participate in the Google Summer of Code. We structured our participation minimally, however, intending to only accept a couple students. In the end, we only accepted two students, both of whom did outstanding work.<br />
<br />
==GSoC 2010==<br />
<br />
We [http://brlcad.org/d/node/47 took a break] and didn't apply to participate in 2010. We wanted to give another org the chance to participate and allow ourselves a little extra time to focus on our own development priorities.<br />
<br />
<br />
==[[Google_Summer_of_Code/2009|GSoC 2009]]==<br />
<br />
{|align="right"<br />
|[[Image:brlcad_gsoc2009_flyer.png|thumb|left|128px]]<br />
|}<br />
<br />
For the second year in a row, BRL-CAD is participating in the Google Summer of Code. BRL-CAD was accepted as a participating organization and took upon five students, four of which successfully worked their projects and integrated with the development team.<br />
<br />
<br />
==[[Google_Summer_of_Code/2008|GSoC 2008]]==<br />
<br />
{|align="right"<br />
|[[Image:brlcad_gsoc2008_flyer.jpg|thumb|left|128px]]<br />
|}<br />
<br />
The Google Summer of Code 2008 was announced on February 25, 2008. BRL-CAD was accepted as a participating organization and took upon four students, all of which successfully worked their projects and integrated with the development team.<br />
[[Category: Summer of Code]]</div>Seanhttps://brlcad.org/w/index.php?title=Google_Summer_of_Code&diff=12599Google Summer of Code2024-02-16T22:30:43Z<p>Sean: 2024!</p>
<hr />
<div>= Overview =<br />
<br />
'''BRL-CAD is accepted as a mentoring organization in the [[Google_Summer_of_Code/2023|2023 Google Summer of Code]]!'''<br />
<br />
Since 2005, Google has run an awesome open source software development program specifically for ''students'' called the [http://code.google.com/soc/ Google Summer of Code] (GSoC). Under this program, Google funds students to write code for open source projects during the northern hemisphere's summer timeframe:<br />
<br />
* The student writes a project proposal for BRL-CAD.<br />
**Sometimes their project idea caters to something that the open source organization suggests and sometimes it's an idea entirely of the student's conception.<br />
* Proposals are reviewed, evaluated, and ranked by the open source organization's mentors.<br />
* Google allocates a certain number of slots to each participating organization<br />
** That, in turn, determines how many student developers work with that organization.<br />
<br />
=Getting Started [[Summer_of_Code/Checklist|Checklist]]=<br />
<br />
Whether you're applying or accepted, we've itemized everything you need to do into a simple '''[[Summer_of_Code/Checklist|CHECKLIST]]'''. We're here to help you become new open source developers, so don't be shy if you have any questions.<br />
<br />
== The Selection Process ==<br />
<br />
GSoC is about getting people involved and contributing to open source over the long-term. As such, we heavily weight our application selection process towards students that are interested in remaining involved in BRL-CAD and open source software development long after GSoC has ended. <br />
<br />
'''''GSoC is not a job.''''' If you think this is just a summer job, then GSoC is probably not for you. It's only like a job in terms of planning your time commitment over the summer.<br />
<br />
Additionally, submissions are graded based on perception of the submitter's abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, and overall interest in having such modifications made to BRL-CAD. Particular notice is made of students that are responsive to questions and readily interactive in the IRC channel or on the mailing list. Communication is a great thing.<br />
<br />
Just about every GSoC organization receives considerably more project proposals than can be accepted. Every application gets read multiple times and reviewed in detail. Of those applications, only a small subset are selected so keep in mind that the selection process is rather competitive and difficult. <br />
<br />
Whether or not you are accepted, contributing to open source outside of GSoC is one of the main goals of the program and is the best way to be noticed and get your proposal accepted. Keep that in mind. Thanks for your interest and we look forward to working with new BRL-CAD developers!<br />
<br />
=BRL-CAD participation in GSoC =<br />
<br />
You can check out promotional flyers that have been prepared in the past on our [[Google_Summer_of_Code/Flyers|GSoC flyers]] page.<br />
<br />
==[[Google_Summer_of_Code/2024|GSoC 2024]]==<br />
<br />
Our umbrella hopes to select 7 contributors for Manifold, IfcOpenShell, BRL-CAD, KiCad, Appleseed, and OpenSCAD.<br />
<br />
==[[Google_Summer_of_Code/2023|GSoC 2023]]==<br />
<br />
Our umbrella selected 5 contributors that prepared proposals for IfcOpenShell, BRL-CAD, KiCad, Appleseed and OpenSCAD.<br />
<br />
==[[Google_Summer_of_Code/2022|GSoC 2022]]==<br />
<br />
Our umbrella selected 7 students that prepared proposals for IfcOpenShell, BRL-CAD, KiCad, LibreCAD and OpenSCAD.<br />
<br />
==[[Google_Summer_of_Code/2021|GSoC 2021]]==<br />
<br />
With global turmoil in full effect, we again reigned back participation, only accepting 6 students, all of which were successful. Students worked with IfcOpenShell, FreeCAD, OpenSCAD, and BRL-CAD.<br />
<br />
==[[Google_Summer_of_Code/2020|GSoC 2020]]==<br />
<br />
We reigned participation back a bit in 2019, accepting 8 students, all of which were successful. Students worked with FreeCAD, BRL-CAD, OpenSCAD, and LibreCAD.<br />
<br />
==[[Google_Summer_of_Code/2019|GSoC 2019]]==<br />
<br />
Our umbrella selected 10 students that prepared proposals for BRL-CAD, OpenSCAD, LibreCAD, FreeCAD, and Slic3r. students passed successfully.<br />
<br />
==[[Google_Summer_of_Code/2018|GSoC 2018]]==<br />
<br />
Our umbrella selected 9 students that prepared quality proposals for BRL-CAD, FreeCAD, LibreCAD, and Slic3r. By the end of GSoC, all but 1 passed successfully.<br />
<br />
==[[Google_Summer_of_Code/2017|GSoC 2017]]==<br />
<br />
Our umbrella accepted 10 students that prepared quality proposals and demonstrated commitment. Students were selected for LibreCAD, Slic3r, BRL-CAD, and FreeCAD.<br />
<br />
==[[Google_Summer_of_Code/2016|GSoC 2016]]==<br />
<br />
This year we tamed it back to 9 students working on projects for BRL-CAD, OpenSCAD, LibreCAD, and FreeCAD (new partner). We were not going to apply at all, but we also didn't want to lose momentum with our umbrella partners or leave them to fend for themselves.<br />
<br />
==[[Google_Summer_of_Code/2015|GSoC 2015]]==<br />
<br />
This year we had a whopping 12 students accepted to work on projects. As an umbrella organization, we expanded our cooperation to include LinuxCNC.<br />
<br />
==[[Google_Summer_of_Code/2014|GSoC 2014]]==<br />
<br />
Hoping to foster collaboration and communication, we actively reached out to a number of related and active open source CAD communities. We expanded our umbrella to include cooperation with STEPcode, LibreCAD, and OpenSCAD.<br />
<br />
==[[Google_Summer_of_Code/2013|GSoC 2013]]==<br />
<br />
Middle ground, not too many, not too few. It was just right. We accepted seven students that all participated successfully. This was also our first year participating as an umbrella organization, coordinating one of those slots with the STEPcode community.<br />
<br />
==[[Google_Summer_of_Code/2012|GSoC 2012]]==<br />
<br />
This year, we aimed big. Lots of mentors, lots of students. Compared to some of the larger notable orgs, students had a really great chance of acceptance if they were actively communicative and highly passionate about their project idea and BRL-CAD. Overall, we accepted eleven students.<br />
<br />
==[[Google_Summer_of_Code/2011|GSoC 2011]]==<br />
<br />
{|align="right"<br />
|[[Image:BRL-CAD_GSoC2011_flyer.png|thumb|left|165px]]<br />
|}<br />
<br />
After a year off focusing on a major development initiative, BRL-CAD once again was accepted to participate in the Google Summer of Code. We structured our participation minimally, however, intending to only accept a couple students. In the end, we only accepted two students, both of whom did outstanding work.<br />
<br />
==GSoC 2010==<br />
<br />
We [http://brlcad.org/d/node/47 took a break] and didn't apply to participate in 2010. We wanted to give another org the chance to participate and allow ourselves a little extra time to focus on our own development priorities.<br />
<br />
<br />
==[[Google_Summer_of_Code/2009|GSoC 2009]]==<br />
<br />
{|align="right"<br />
|[[Image:brlcad_gsoc2009_flyer.png|thumb|left|128px]]<br />
|}<br />
<br />
For the second year in a row, BRL-CAD is participating in the Google Summer of Code. BRL-CAD was accepted as a participating organization and took upon five students, four of which successfully worked their projects and integrated with the development team.<br />
<br />
<br />
==[[Google_Summer_of_Code/2008|GSoC 2008]]==<br />
<br />
{|align="right"<br />
|[[Image:brlcad_gsoc2008_flyer.jpg|thumb|left|128px]]<br />
|}<br />
<br />
The Google Summer of Code 2008 was announced on February 25, 2008. BRL-CAD was accepted as a participating organization and took upon four students, all of which successfully worked their projects and integrated with the development team.<br />
[[Category: Summer of Code]]</div>Seanhttps://brlcad.org/w/index.php?title=Compiling&diff=12335Compiling2022-10-04T06:44:57Z<p>Sean: cmake 3.18 now</p>
<hr />
<div>= Compiling BRL-CAD =<br />
<br />
This page has simplified steps for building '''''quickly'''''. See [https://github.com/BRL-CAD/brlcad/blob/main/INSTALL INSTALL] for more detailed instruction.<br />
<br />
<br />
== Step 1: Install Dev Tools ==<br />
<br />
To build, you want the latest [https://cmake.org/download/ CMake], a recent compiler, and at least 3GB of disk space. You will also want [https://git-scm.com/downloads/guis Git] to obtain the latest source code.<br />
<br />
* Minimum versions:<br />
** CMake must be 3.18 or later<br />
** Git must be 2.17 or later<br />
** Compiler must be C++11-compliant<br />
*** If using Visual Studio, version 2015 (14.0+) or later<br />
*** If using GCC/G++, version 4.8.1 or later<br />
*** If using LLVM/Clang 3.3 or later<br />
*** If using Intel, version 2015 (15.0+) or later<br />
<br />
<br />
* '''Windows''': Install [https://gitforwindows.org Git], [https://cmake.org/download/ CMake], and [https://visualstudio.microsoft.com/vs/community/ Visual Studio Community] or Professional. VS Code should also work, but you will need to install the "[https://visualstudio.microsoft.com/downloads/ Build Tools for Visual Studio]" also.<br />
<br />
<br />
* '''Mac''': Install [https://cmake.org/download/ CMake] and XCode or run this in Terminal: <pre>xcode-select --install</pre><br />
<br />
<br />
* '''Linux''' and Windows Subsystem for Linux ('''WSL'''):<br />
<br />
Installing is easiest with a package management system like apt, brew, yum, and dnf that install for you. Alas, the tools and names change frequently, so the following are platform-specific recommendations that may need to be adjusted for your system.<br />
<br />
** WSL: You should be good to go.<br />
<br />
** Debian/Ubuntu: <pre>apt install build-essential make cmake</pre><br />
<br />
If you're on an older distribution, you may need to manually install a more recent version of cmake. <br />
<br />
** Fedora: <pre>yum install clang++ make cmake</pre><br />
<br />
** CentOS: <pre>yum install python3-pip devtoolset-9</pre><pre>pip3 install cmake</pre><pre>scl enable devtoolset-9 bash</pre><br />
<br />
<br />
* BSD: we assume you know what you're doing and can follow the gist<br />
<br />
== Step 2: Install Dependencies ==<br />
<br />
* '''Windows''': You can skip this step.<br />
<br />
* '''Mac''': Install the latest [https://www.xquartz.org XQuartz]<br />
<br />
* '''Linux''': BRL-CAD needs the Xorg development packages<br />
<br />
** Debian/Ubuntu: <pre>apt install libc6-dev libfreetype-dev libfontconfig-dev</pre><pre>apt install xserver-xorg-dev libx11-dev libxi-dev libglu1-mesa-dev</pre><br />
<br />
** Fedora: <pre>yum install freetype-devel fontconfig-devel</pre><pre>yum install libX11-devel libXext-devel libXi-devel mesa-libGL-devel</pre><br />
<br />
== Step 3: Download BRL-CAD ==<br />
<br />
We recommend obtaining BRL-CAD by forking or cloning our repository on [https://github.com/BRL-CAD/brlcad GitHub].<br />
<br />
* '''Windows''': If you're going to build with Visual Studio, run Git GUI specifying this repository to clone: <pre>https://github.com/BRL-CAD/brlcad.git</pre>. If you're building under WSL, clone from the git-bash command line. <br />
<br />
* '''Mac''': You can either run the Git GUI, or you can run this in Terminal: <pre>git clone https://github.com/BRL-CAD/brlcad.git</pre><br />
<br />
* '''Linux''' and '''WSL''': <pre>git clone https://github.com/BRL-CAD/brlcad.git</pre><br />
<br />
The "brlcad" folder created after cloning is a full source checkout of BRL-CAD and contains a README with additional info. If you run into trouble cloning from git, snapshot source releases [https://sourceforge.net/projects/brlcad/files/BRL-CAD%20Source/ are available].<br />
<br />
<br />
== Step 4: Create a Build directory ==<br />
<br />
You can create a build folder anywhere, but it's typically named "build" and is in or near your "brlcad" source directory.<br />
<br />
* '''Windows''': create a folder named "build" inside your "brlcad" folder<br />
<br />
* '''Mac''', '''Linux''': <pre>mkdir -p brlcad/build</pre><br />
<br />
<br />
== Step 5: Configure ==<br />
<br />
It's first recommended during configure and compilation that you temporarily suspend any anti-virus software as they're notorious for issuing false-positives alerts and blocking necessary operations. Some BRL-CAD tools use temporary network ports that will need to be allowed as well, if prompted. <br />
<br />
Next, you'll run CMake to configure and generate a build system. <br />
<br />
CMake needs to know the top-level source dir (i.e., "brlcad" dir you cloned) and "build" dir you made are located. For your first time, we also recommend setting these CMake variables to avoid trivial issues:<br />
BRLCAD_ENABLE_STRICT=OFF<br />
BRLCAD_ENABLE_COMPILER_WARNINGS=OFF<br />
BRLCAD_BUNDLED_LIBS=ON<br />
<br />
* '''Windows''': you can use CMake GUI where you'll specify 1) your source dir (i.e. path to the "brlcad" folder that has README), 2) the build dir, and 3) variables. CMake does not display variables the first time you run, but you can "+ Add Entry" to add them or run "Configure" to list them. Once dirs and variables are set, run "Configure" again and finally "Generate" to create a Visual Studio build system. [[File:Running_cmake_on_windows.png|200px|thumb|right|Running CMake GUI on Windows]]<br />
<br />
* '''Mac''': You can either run CMake GUI like described for Windows, specifying your source dir, build dir, and the above variables, or you can follow the steps below for Linux in Terminal.<br />
<br />
* '''Linux''': <pre>cd brlcad/build</pre><pre>cmake .. -DBRLCAD_ENABLE_STRICT=NO -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release</pre><br />
<br />
See [https://github.com/BRL-CAD/brlcad/blob/main/INSTALL INSTALL] for more CMake options.<br />
<br />
If CMake was successful, there will be a summary of the build printed at the end, it will say "Configured", and then "Generated" after a build system is finally done being written out for compiling BRL-CAD.<br />
<br />
If CMake was unsuccessful, scan the output for any error messages indicating what is failing or missing as it's typically a missing tool, missing library, or erroneous setting.<br />
<br />
== Step 6: Compile ==<br />
<br />
'''Windows''': navigate to your build directory and open the BRLCAD.sln file with Visual Studio. You can ignore any warning about a duplicate "regress" target. Compile the default ALL_BUILD solution.<br />
<br />
'''Mac''', '''Linux''': while still in the build directory from Step 4, run <pre>make</pre>. If you have multiple cores, you can alternatively compile in parallel specifying a desire number of cores, e.g., <pre>make -j10</pre><br />
<br />
If the build fails, re-run while capturing all output to a log: make 2>&1 | tee build.log<br />
Please [https://github.com/BRL-CAD/brlcad/issues report] any build failures.<br />
<br />
Note: Compilation can take anywhere from a couple minutes to an hour depending on hardware. If you had a quad-core CPU, you might run '"make -j4" to speed things up by compiling in parallel.<br />
<br />
<br />
== Step 7: Run! ==<br />
<br />
You don't have to install to run BRL-CAD. You can run the binaries you just compiled as they are in the brlcad/build/bin directory. On Windows, they can be in Debug/ or Release/ folders. Of the hundreds of tools in BRL-CAD, here's just a few to get you started:<br />
<br />
<pre><br />
bin/benchmark run<br />
bin/mged<br />
bin/archer<br />
</pre><br />
<br />
The first command (benchmark) will evaluate system performance and you can send results to benchmark at brlcad dot org.<br />
<br />
The second command (mged) is BRL-CAD's main graphical user interface application.<br />
<br />
The third command (archer) is BRL-CAD's newer graphical interface under development.<br />
<br />
= What next? =<br />
<br />
Be sure to check out the [[Documentation|docs]] and [[Main_Page]] for tutorials and more.<br />
<br />
Help make BRL-CAD better! There are many ways you can contribute to open source and you don't need to be an experienced programmer. We need artists, writers, designers, software developers, and managers. Contact us on [[IRC]].<br />
<br />
Please [https://github.com/BRL-CAD/brlcad/issues report] any build failures.<br />
<br />
See [[Deuces]] for really easy ways to get started!</div>Seanhttps://brlcad.org/w/index.php?title=Appleseed&diff=12083Appleseed2022-03-12T19:57:07Z<p>Sean: copy the dll</p>
<hr />
<div>= Appleseed Integration Project =<br />
This is an effort to bring physically-based rendering (PBR) to solid geometry CAD modeling in BRL-CAD. The goal of the project is to be able to support as many 'rt' features as possible so that 'art' is a drop-in replacement. Collaboration with [https://appleseedhq.net appleseed] began in 2014 after talks at the 10th-year GSoC summit. Appleseed devs created [https://github.com/appleseedhq/appleseed/blob/master/src/appleseed/renderer/modeling/object/proceduralobject.h a procedural geometry interface] that enabled PBR on BRL-CAD geometry using our ray tracing engine (LIBRT). <br />
<br />
This project has been realized through the development efforts of GCI students, GSoC students, and capstone students at Texas A&M University, enabled by development support and mentoring by BRL-CAD and Appleseed development teams.<br />
<br />
<br />
== Progress ==<br />
The appleseed integration project takes advantage of appleseed's support for procedural objects, which allows for the creation of a custom plugin to execute custom ray-intersect logic. By linking with librt, the plugin is thus able to render BRL-CAD geometry. Aside from simply being able to render the geometry, art.exe currently supports a few select rt features. At the moment, art.exe is capable of:<br />
* selecting the geometry model and the regions to render<br />
* defining the render image pixel dimensions<br />
* setting the azimuth/elevation and perspective angle<br />
<br />
As mentioned, the goal of the project is for art.exe to implement the same features as rt.exe, so that, in a sense, they can be used interchangeably. Therefore, if possible, it would be preferred if art could reuse the same helper functions and variables used by rt. For example, much of the command-line option parsing performed by art directly comes from opt.c/usage.cpp, which was originally used by rt. This makes the code much cleaner and easier to maintain.<br />
<br />
<br />
== To-Do ==<br />
=== Separating Regions ===<br />
* The custom BRL-CAD plugin currently tracks all BRL-CAD regions and their mappings to Appleseed instances via a single "ray trace instance pointer" (rtip). It uses a string comparison to determine if a hit is on a corresponding appleseed instance. While this works, it's incredibly inefficient. It either needs a separate rtip per object (ideal) or it needs to use pointers/integers to determine if we hit the Appleseed instance.<br />
<br />
=== Colors/Materials ===<br />
* BRL-CAD objects are rendered by appleseed individually and can have different colors and/or materials assigned to each instance. However, there is no automatic mapping from BRL-CAD shader settings to Appleseed settings. PBR shaders are supported via BRL-CAD 'material' objects (see 'material' command and gltf import). Using more advanced materials (e.g., with textures) is untested.<br />
<br />
=== Multithreading Support ===<br />
* Both appleseed and librt are capable of multithreaded rendering, but at the moment, the plugin will only work on a single thread. At some point, multithreading support should be implemented in order to fully take advantage of appleseed/librt capabilities.<br />
<br />
=== Refining CMake ===<br />
* Setting up the appleseed project requires a lot of hacky and manual work due to relying on a pre-built binary of Appleseed. The CMake build needs to compile Appleseed and all its dependencies using CMake's External_ProjectAdd feature in order to make the build process easier for all platforms and in order to ensure 'art' is always enabled.<br />
<br />
<br />
== Compiling 'art' ==<br />
<br />
To compile the 'art' application in BRL-CAD, follow these steps:<br />
<br />
# [[Compiling|Download and compile BRL-CAD]]<br />
# [https://appleseedhq.net Download and install a pre-compiled appleseed]<br />
# Run appleseed.studio to determine version of Boost needed under Help->About (likely 1.69.0 or 1.70.0)<br />
# Install Boost<br />
## For Windows, [https://www.boost.org/users/download/ download and install 'Prebuilt Windows binaries'] matching Help->About<br />
## For Mac, run "brew install boost"<br />
## For other platforms, use your system's preferred package management system<br />
# Create a fresh BRL-CAD build dir (e.g., 'build.appleseed')<br />
# Run CMake GUI (cmake CLI can be used, but instructions below are for GUI)<br />
## Specify path to BRL-CAD sources<br />
## Specify path to the fresh BRL-CAD build dir<br />
## Check "Advanced"<br />
## Select "+ Add Entry", define Appleseed_ROOT=/path/to/appleseed<br />
## Select "+ Add Entry", define BOOST_ROOT=/path/to/boost<br />
## Select "Configure"<br />
## Edit Boost_* component variables to have 'lib' prefix (e.g., libboost_atomic... instead of boost_atomic...)<br />
## Select "Configure" again, confirm output says Appleseed found and Boost found<br />
## Select "Generate"<br />
## Select "Open Project"<br />
# Navigate to BRL-CAD Executables -> Rt -> art, right-click and select Build<br />
# IFF on Windows, copy appleseed.dll from appleseed's bin folder to where art.exe resides (e.g., build/Debug/bin)<br />
# If 0 build errors compiling art<br />
## open a cmd.exe or git bash terminal window<br />
## navigate to build.appleseed folder<br />
## run art without args (e.g., type "Debug/bin/art.exe" on Windows and confirm a usage statement is displayed)<br />
# Compile rest of BRL-CAD (compile the ALL_BUILD target on Windows)<br />
# If 0 build errors compiling ALL_BUILD<br />
## run art with args (e.g., "Debug/bin/art.exe Debug/share/db/moss.g all.g" on Windows)<br />
# IFF you get a Heap error,<br />
## edit src/libbu/linebuf.c and add a "return;" as the very first line of bu_setlinebuf()<br />
## Navigate to BRL-CAD Executables -> Rt -> art, right-click and select Build<br />
## run art with args (e.g., "Debug/bin/art.exe Debug/share/db/moss.g all.g" on Windows)<br />
<br />
If art has a log message saying "image saved to output/art.png" near the end of logged output, then it ran successfully (even if you still get a Heap error on Windows).</div>Seanhttps://brlcad.org/w/index.php?title=Appleseed&diff=12082Appleseed2022-03-12T19:23:04Z<p>Sean: initial steps for Compiling 'art'</p>
<hr />
<div>= Appleseed Integration Project =<br />
This is an effort to bring physically-based rendering (PBR) to solid geometry CAD modeling in BRL-CAD. The goal of the project is to be able to support as many 'rt' features as possible so that 'art' is a drop-in replacement. Collaboration with [https://appleseedhq.net appleseed] began in 2014 after talks at the 10th-year GSoC summit. Appleseed devs created [https://github.com/appleseedhq/appleseed/blob/master/src/appleseed/renderer/modeling/object/proceduralobject.h a procedural geometry interface] that enabled PBR on BRL-CAD geometry using our ray tracing engine (LIBRT). <br />
<br />
This project has been realized through the development efforts of GCI students, GSoC students, and capstone students at Texas A&M University, enabled by development support and mentoring by BRL-CAD and Appleseed development teams.<br />
<br />
<br />
== Progress ==<br />
The appleseed integration project takes advantage of appleseed's support for procedural objects, which allows for the creation of a custom plugin to execute custom ray-intersect logic. By linking with librt, the plugin is thus able to render BRL-CAD geometry. Aside from simply being able to render the geometry, art.exe currently supports a few select rt features. At the moment, art.exe is capable of:<br />
* selecting the geometry model and the regions to render<br />
* defining the render image pixel dimensions<br />
* setting the azimuth/elevation and perspective angle<br />
<br />
As mentioned, the goal of the project is for art.exe to implement the same features as rt.exe, so that, in a sense, they can be used interchangeably. Therefore, if possible, it would be preferred if art could reuse the same helper functions and variables used by rt. For example, much of the command-line option parsing performed by art directly comes from opt.c/usage.cpp, which was originally used by rt. This makes the code much cleaner and easier to maintain.<br />
<br />
<br />
== To-Do ==<br />
=== Separating Regions ===<br />
* The custom BRL-CAD plugin currently tracks all BRL-CAD regions and their mappings to Appleseed instances via a single "ray trace instance pointer" (rtip). It uses a string comparison to determine if a hit is on a corresponding appleseed instance. While this works, it's incredibly inefficient. It either needs a separate rtip per object (ideal) or it needs to use pointers/integers to determine if we hit the Appleseed instance.<br />
<br />
=== Colors/Materials ===<br />
* BRL-CAD objects are rendered by appleseed individually and can have different colors and/or materials assigned to each instance. However, there is no automatic mapping from BRL-CAD shader settings to Appleseed settings. PBR shaders are supported via BRL-CAD 'material' objects (see 'material' command and gltf import). Using more advanced materials (e.g., with textures) is untested.<br />
<br />
=== Multithreading Support ===<br />
* Both appleseed and librt are capable of multithreaded rendering, but at the moment, the plugin will only work on a single thread. At some point, multithreading support should be implemented in order to fully take advantage of appleseed/librt capabilities.<br />
<br />
=== Refining CMake ===<br />
* Setting up the appleseed project requires a lot of hacky and manual work due to relying on a pre-built binary of Appleseed. The CMake build needs to compile Appleseed and all its dependencies using CMake's External_ProjectAdd feature in order to make the build process easier for all platforms and in order to ensure 'art' is always enabled.<br />
<br />
<br />
== Compiling 'art' ==<br />
<br />
To compile the 'art' application in BRL-CAD, follow these steps:<br />
<br />
# [[Compiling|Download and compile BRL-CAD]]<br />
# [https://appleseedhq.net Download and install a pre-compiled appleseed]<br />
# Run appleseed.studio to determine version of Boost needed under Help->About (likely 1.69.0 or 1.70.0)<br />
# Install Boost<br />
## For Windows, [https://www.boost.org/users/download/ download and install 'Prebuilt Windows binaries'] matching Help->About<br />
## For Mac, run "brew install boost"<br />
## For other platforms, use your system's preferred package management system<br />
# Create a fresh BRL-CAD build dir (e.g., 'build.appleseed')<br />
# Run CMake GUI (cmake CLI can be used, but instructions below are for GUI)<br />
## Specify path to BRL-CAD sources<br />
## Specify path to the fresh BRL-CAD build dir<br />
## Check "Advanced"<br />
## Select "+ Add Entry", define Appleseed_ROOT=/path/to/appleseed<br />
## Select "+ Add Entry", define BOOST_ROOT=/path/to/boost<br />
## Select "Configure"<br />
## Edit Boost_* component variables to have 'lib' prefix (e.g., libboost_atomic... instead of boost_atomic...)<br />
## Select "Configure" again, confirm output says Appleseed found and Boost found<br />
## Select "Generate"<br />
## Select "Open Project"<br />
# Navigate to BRL-CAD Executables -> Rt -> art, right-click and select Build <br />
# If 0 build errors<br />
## open a cmd.exe or git bash terminal window<br />
## navigate to build.appleseed folder<br />
## run art without args (e.g., type "Debug/bin/art.exe" on Windows and confirm a usage statement is displayed)<br />
# Compile rest of BRL-CAD (compile the ALL_BUILD target on Windows)<br />
# If 0 build errors<br />
## run art with args (e.g., "Debug/bin/art.exe Debug/share/db/moss.g all.g" on Windows)<br />
# IFF you get a Heap error,<br />
## edit src/libbu/linebuf.c and add a "return;" as the very first line of bu_setlinebuf()<br />
## Navigate to BRL-CAD Executables -> Rt -> art, right-click and select Build<br />
## run art with args (e.g., "Debug/bin/art.exe Debug/share/db/moss.g all.g" on Windows)<br />
<br />
If art has a log message saying "image saved to output/art.png" near the end of logged output, then it ran successfully (even if you still get a Heap error on Windows).</div>Seanhttps://brlcad.org/w/index.php?title=Appleseed&diff=12081Appleseed2022-03-12T18:59:02Z<p>Sean: </p>
<hr />
<div>= Appleseed Integration Project =<br />
This is an effort to bring physically-based rendering (PBR) to solid geometry CAD modeling in BRL-CAD. The goal of the project is to be able to support as many 'rt' features as possible so that 'art' is a drop-in replacement. Collaboration with [https://appleseedhq.net appleseed] began in 2014 after talks at the 10th-year GSoC summit. Appleseed devs created [https://github.com/appleseedhq/appleseed/blob/master/src/appleseed/renderer/modeling/object/proceduralobject.h a procedural geometry interface] that enabled PBR on BRL-CAD geometry using our ray tracing engine (LIBRT). <br />
<br />
This project has been realized through the development efforts of GCI students, GSoC students, and capstone students at Texas A&M University, enabled by development support and mentoring by BRL-CAD and Appleseed development teams.<br />
<br />
<br />
== Progress ==<br />
The appleseed integration project takes advantage of appleseed's support for procedural objects, which allows for the creation of a custom plugin to execute custom ray-intersect logic. By linking with librt, the plugin is thus able to render BRL-CAD geometry. Aside from simply being able to render the geometry, art.exe currently supports a few select rt features. At the moment, art.exe is capable of:<br />
* selecting the geometry model and the regions to render<br />
* defining the render image pixel dimensions<br />
* setting the azimuth/elevation and perspective angle<br />
<br />
As mentioned, the goal of the project is for art.exe to implement the same features as rt.exe, so that, in a sense, they can be used interchangeably. Therefore, if possible, it would be preferred if art could reuse the same helper functions and variables used by rt. For example, much of the command-line option parsing performed by art directly comes from opt.c/usage.cpp, which was originally used by rt. This makes the code much cleaner and easier to maintain.<br />
<br />
<br />
== To-Do ==<br />
=== Separating Regions ===<br />
* The custom BRL-CAD plugin currently tracks all BRL-CAD regions and their mappings to Appleseed instances via a single "ray trace instance pointer" (rtip). It uses a string comparison to determine if a hit is on a corresponding appleseed instance. While this works, it's incredibly inefficient. It either needs a separate rtip per object (ideal) or it needs to use pointers/integers to determine if we hit the Appleseed instance.<br />
<br />
=== Colors/Materials ===<br />
* BRL-CAD objects are rendered by appleseed individually and can have different colors and/or materials assigned to each instance. However, there is no automatic mapping from BRL-CAD shader settings to Appleseed settings. PBR shaders are supported via BRL-CAD 'material' objects (see 'material' command and gltf import). Using more advanced materials (e.g., with textures) is untested.<br />
<br />
=== Multithreading Support ===<br />
* Both appleseed and librt are capable of multithreaded rendering, but at the moment, the plugin will only work on a single thread. At some point, multithreading support should be implemented in order to fully take advantage of appleseed/librt capabilities.<br />
<br />
=== Refining CMake ===<br />
* Setting up the appleseed project requires a lot of hacky and manual work due to relying on a pre-built binary of Appleseed. The CMake build needs to compile Appleseed and all its dependencies using CMake's External_ProjectAdd feature in order to make the build process easier for all platforms and in order to ensure 'art' is always enabled.<br />
<br />
<br />
== Compiling 'art' ==<br />
<br />
To compile the 'art' application in BRL-CAD, follow these steps:<br />
<br />
# [[Compiling|Download and compile BRL-CAD]]<br />
# [https://appleseedhq.net Download and install a pre-compiled appleseed]<br />
# ...</div>Seanhttps://brlcad.org/w/index.php?title=Appleseed&diff=12080Appleseed2022-03-12T18:58:44Z<p>Sean: </p>
<hr />
<div>= Appleseed Integration Project =<br />
This is an effort to bring physically-based rendering (PBR) to solid geometry CAD modeling in BRL-CAD. The goal of the project is to be able to support as many 'rt' features as possible so that 'art' is a drop-in replacement. Collaboration with [https://appleseedhq.net appleseed] began in 2014 after talks at the 10th-year GSoC summit. Appleseed devs created [https://github.com/appleseedhq/appleseed/blob/master/src/appleseed/renderer/modeling/object/proceduralobject.h a procedural geometry interface] that enabled PBR on BRL-CAD geometry using our ray tracing engine (LIBRT). <br />
<br />
This project has been realized through the development efforts of GCI students, GSoC students, and capstone students at Texas A&M University, enabled by development support and mentoring by BRL-CAD and Appleseed development teams.<br />
<br />
== Progress ==<br />
The appleseed integration project takes advantage of appleseed's support for procedural objects, which allows for the creation of a custom plugin to execute custom ray-intersect logic. By linking with librt, the plugin is thus able to render BRL-CAD geometry. Aside from simply being able to render the geometry, art.exe currently supports a few select rt features. At the moment, art.exe is capable of:<br />
* selecting the geometry model and the regions to render<br />
* defining the render image pixel dimensions<br />
* setting the azimuth/elevation and perspective angle<br />
<br />
As mentioned, the goal of the project is for art.exe to implement the same features as rt.exe, so that, in a sense, they can be used interchangeably. Therefore, if possible, it would be preferred if art could reuse the same helper functions and variables used by rt. For example, much of the command-line option parsing performed by art directly comes from opt.c/usage.cpp, which was originally used by rt. This makes the code much cleaner and easier to maintain.<br />
<br />
<br />
== To-Do ==<br />
=== Separating Regions ===<br />
* The custom BRL-CAD plugin currently tracks all BRL-CAD regions and their mappings to Appleseed instances via a single "ray trace instance pointer" (rtip). It uses a string comparison to determine if a hit is on a corresponding appleseed instance. While this works, it's incredibly inefficient. It either needs a separate rtip per object (ideal) or it needs to use pointers/integers to determine if we hit the Appleseed instance.<br />
<br />
=== Colors/Materials ===<br />
* BRL-CAD objects are rendered by appleseed individually and can have different colors and/or materials assigned to each instance. However, there is no automatic mapping from BRL-CAD shader settings to Appleseed settings. PBR shaders are supported via BRL-CAD 'material' objects (see 'material' command and gltf import). Using more advanced materials (e.g., with textures) is untested.<br />
<br />
=== Multithreading Support ===<br />
* Both appleseed and librt are capable of multithreaded rendering, but at the moment, the plugin will only work on a single thread. At some point, multithreading support should be implemented in order to fully take advantage of appleseed/librt capabilities.<br />
<br />
=== Refining CMake ===<br />
* Setting up the appleseed project requires a lot of hacky and manual work due to relying on a pre-built binary of Appleseed. The CMake build needs to compile Appleseed and all its dependencies using CMake's External_ProjectAdd feature in order to make the build process easier for all platforms and in order to ensure 'art' is always enabled.<br />
<br />
<br />
== Compiling 'art' ==<br />
<br />
To compile the 'art' application in BRL-CAD, follow these steps:<br />
<br />
# [[Compiling|Download and compile BRL-CAD]]<br />
# [https://appleseedhq.net Download and install a pre-compiled appleseed]<br />
# ...</div>Seanhttps://brlcad.org/w/index.php?title=Appleseed&diff=12079Appleseed2022-03-12T18:58:21Z<p>Sean: start a list of steps</p>
<hr />
<div>= Appleseed Integration Project =<br />
This is an effort to bring physically-based rendering (PBR) to solid geometry CAD modeling in BRL-CAD. The goal of the project is to be able to support as many 'rt' features as possible so that 'art' is a drop-in replacement. Collaboration with [https://appleseedhq.net appleseed] began in 2014 after talks at the 10th-year GSoC summit. Appleseed devs created [https://github.com/appleseedhq/appleseed/blob/master/src/appleseed/renderer/modeling/object/proceduralobject.h a procedural geometry interface] that enabled PBR on BRL-CAD geometry using our ray tracing engine (LIBRT). <br />
<br />
This project has been realized through the development efforts of GCI students, GSoC students, and capstone students at Texas A&M University, enabled by development support and mentoring by BRL-CAD and Appleseed development teams.<br />
<br />
== Progress ==<br />
The appleseed integration project takes advantage of appleseed's support for procedural objects, which allows for the creation of a custom plugin to execute custom ray-intersect logic. By linking with librt, the plugin is thus able to render BRL-CAD geometry. Aside from simply being able to render the geometry, art.exe currently supports a few select rt features. At the moment, art.exe is capable of:<br />
* selecting the geometry model and the regions to render<br />
* defining the render image pixel dimensions<br />
* setting the azimuth/elevation and perspective angle<br />
<br />
<br />
As mentioned, the goal of the project is for art.exe to implement the same features as rt.exe, so that, in a sense, they can be used interchangeably. Therefore, if possible, it would be preferred if art could reuse the same helper functions and variables used by rt. For example, much of the command-line option parsing performed by art directly comes from opt.c/usage.cpp, which was originally used by rt. This makes the code much cleaner and easier to maintain.<br />
<br />
<br />
== To-Do ==<br />
=== Separating Regions ===<br />
* The custom BRL-CAD plugin currently tracks all BRL-CAD regions and their mappings to Appleseed instances via a single "ray trace instance pointer" (rtip). It uses a string comparison to determine if a hit is on a corresponding appleseed instance. While this works, it's incredibly inefficient. It either needs a separate rtip per object (ideal) or it needs to use pointers/integers to determine if we hit the Appleseed instance.<br />
<br />
=== Colors/Materials ===<br />
* BRL-CAD objects are rendered by appleseed individually and can have different colors and/or materials assigned to each instance. However, there is no automatic mapping from BRL-CAD shader settings to Appleseed settings. PBR shaders are supported via BRL-CAD 'material' objects (see 'material' command and gltf import). Using more advanced materials (e.g., with textures) is untested.<br />
<br />
=== Multithreading Support ===<br />
* Both appleseed and librt are capable of multithreaded rendering, but at the moment, the plugin will only work on a single thread. At some point, multithreading support should be implemented in order to fully take advantage of appleseed/librt capabilities.<br />
<br />
=== Refining CMake ===<br />
* Setting up the appleseed project requires a lot of hacky and manual work due to relying on a pre-built binary of Appleseed. The CMake build needs to compile Appleseed and all its dependencies using CMake's External_ProjectAdd feature in order to make the build process easier for all platforms and in order to ensure 'art' is always enabled.<br />
<br />
== Compiling 'art' ==<br />
<br />
To compile the 'art' application in BRL-CAD, follow these steps:<br />
<br />
# [[Compiling|Download and compile BRL-CAD]]<br />
# [https://appleseedhq.net Download and install a pre-compiled appleseed]<br />
# ...</div>Seanhttps://brlcad.org/w/index.php?title=Appleseed&diff=12078Appleseed2022-03-12T18:54:52Z<p>Sean: add historic context</p>
<hr />
<div>= Appleseed Integration Project =<br />
This is an effort to bring physically-based rendering (PBR) to solid geometry CAD modeling in BRL-CAD. The goal of the project is to be able to support as many 'rt' features as possible so that 'art' is a drop-in replacement. Collaboration with [https://appleseedhq.net appleseed] began in 2014 after talks at the 10th-year GSoC summit. Appleseed devs created [https://github.com/appleseedhq/appleseed/blob/master/src/appleseed/renderer/modeling/object/proceduralobject.h a procedural geometry interface] that enabled PBR on BRL-CAD geometry using our ray tracing engine (LIBRT). <br />
<br />
This project has been realized through the development efforts of GCI students, GSoC students, and capstone students at Texas A&M University, enabled by development support and mentoring by BRL-CAD and Appleseed development teams.<br />
<br />
== Progress ==<br />
The appleseed integration project takes advantage of appleseed's support for procedural objects, which allows for the creation of a custom plugin to execute custom ray-intersect logic. By linking with librt, the plugin is thus able to render BRL-CAD geometry. Aside from simply being able to render the geometry, art.exe currently supports a few select rt features. At the moment, art.exe is capable of:<br />
* selecting the geometry model and the regions to render<br />
* defining the render image pixel dimensions<br />
* setting the azimuth/elevation and perspective angle<br />
<br />
<br />
As mentioned, the goal of the project is for art.exe to implement the same features as rt.exe, so that, in a sense, they can be used interchangeably. Therefore, if possible, it would be preferred if art could reuse the same helper functions and variables used by rt. For example, much of the command-line option parsing performed by art directly comes from opt.c/usage.cpp, which was originally used by rt. This makes the code much cleaner and easier to maintain.<br />
<br />
<br />
== To-Do ==<br />
=== Separating Regions ===<br />
* The custom BRL-CAD plugin currently tracks all BRL-CAD regions and their mappings to Appleseed instances via a single "ray trace instance pointer" (rtip). It uses a string comparison to determine if a hit is on a corresponding appleseed instance. While this works, it's incredibly inefficient. It either needs a separate rtip per object (ideal) or it needs to use pointers/integers to determine if we hit the Appleseed instance.<br />
<br />
=== Colors/Materials ===<br />
* BRL-CAD objects are rendered by appleseed individually and can have different colors and/or materials assigned to each instance. However, there is no automatic mapping from BRL-CAD shader settings to Appleseed settings. PBR shaders are supported via BRL-CAD 'material' objects (see 'material' command and gltf import). Using more advanced materials (e.g., with textures) is untested.<br />
<br />
=== Multithreading Support ===<br />
* Both appleseed and librt are capable of multithreaded rendering, but at the moment, the plugin will only work on a single thread. At some point, multithreading support should be implemented in order to fully take advantage of appleseed/librt capabilities.<br />
<br />
=== Refining CMake ===<br />
* Setting up the appleseed project requires a lot of hacky and manual work due to relying on a pre-built binary of Appleseed. The CMake build needs to compile Appleseed and all its dependencies using CMake's External_ProjectAdd feature in order to make the build process easier for all platforms and in order to ensure 'art' is always enabled.</div>Seanhttps://brlcad.org/w/index.php?title=Appleseed&diff=12077Appleseed2022-03-12T18:11:37Z<p>Sean: updates after the fall effort</p>
<hr />
<div>= Appleseed Integration Project =<br />
Integration with appleseed (https://github.com/appleseedhq/appleseed) has been a long-standing BRL-CAD project. In essence, the idea is to render BRL-CAD geometry through a custom plugin to the appleseed renderer. The ultimate goal of the project is to be able to support as many rt features as possible.<br />
<br />
<br />
== Progress ==<br />
The appleseed integration project takes advantage of appleseed's support for procedural objects, which allows for the creation of a custom plugin to execute custom ray-intersect logic. By linking with librt, the plugin is thus able to render BRL-CAD geometry. Aside from simply being able to render the geometry, art.exe currently supports a few select rt features. At the moment, art.exe is capable of:<br />
* selecting the geometry model and the regions to render<br />
* defining the render image pixel dimensions<br />
* setting the azimuth/elevation and perspective angle<br />
<br />
<br />
As mentioned, the goal of the project is for art.exe to implement the same features as rt.exe, so that, in a sense, they can be used interchangeably. Therefore, if possible, it would be preferred if art could reuse the same helper functions and variables used by rt. For example, much of the command-line option parsing performed by art directly comes from opt.c/usage.cpp, which was originally used by rt. This makes the code much cleaner and easier to maintain.<br />
<br />
<br />
== To-Do ==<br />
=== Separating Regions ===<br />
* The custom BRL-CAD plugin currently tracks all BRL-CAD regions and their mappings to Appleseed instances via a single "ray trace instance pointer" (rtip). It uses a string comparison to determine if a hit is on a corresponding appleseed instance. While this works, it's incredibly inefficient. It either needs a separate rtip per object (ideal) or it needs to use pointers/integers to determine if we hit the Appleseed instance.<br />
<br />
=== Colors/Materials ===<br />
* BRL-CAD objects are rendered by appleseed individually and can have different colors and/or materials assigned to each instance. However, there is no automatic mapping from BRL-CAD shader settings to Appleseed settings. PBR shaders are supported via BRL-CAD 'material' objects (see 'material' command and gltf import). Using more advanced materials (e.g., with textures) is untested.<br />
<br />
=== Multithreading Support ===<br />
* Both appleseed and librt are capable of multithreaded rendering, but at the moment, the plugin will only work on a single thread. At some point, multithreading support should be implemented in order to fully take advantage of appleseed/librt capabilities.<br />
<br />
=== Refining CMake ===<br />
* Setting up the appleseed project requires a lot of hacky and manual work due to relying on a pre-built binary of Appleseed. The CMake build needs to compile Appleseed and all its dependencies using CMake's External_ProjectAdd feature in order to make the build process easier for all platforms and in order to ensure 'art' is always enabled.</div>Sean