Anonymous

Not logged in

Search

Editing Community Publication Portal

Namespaces

More

Page actions

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision

Your text

Line 1:

Line 1:

−

Welcome to the BRL-CAD community publication portal. This page is dedicated to the preparation and editing of BRL-CAD announcements. Proposed and upcoming topics are listed. Anyone is '''welcome and encouraged''' to share news about any activity related to BRL-CAD. Community editing and review are encouraged.

+

Welcome to the BRL-CAD community publication portal. This page is dedicated to the preparation and editing of community publications for BRL-CAD.

−

__TOC__

+

This is the place to learn what publications are proposed or upcoming, which are actively being worked on, and their individual editorial status. You are '''welcome and encouraged''' to help share news about recent events or current activities taking place within the BRL-CAD community.

+

+

Note: if you see a comment indicating that a section is FROZEN, any changes you make in that section may go unnoticed. If you find errors in a FROZEN article, contact Sean (brlcad on freenode [[IRC]]) who may be able to incorporate changes during final publication.

* Section headings uppercase the major words and are in bold ('''Like This''')

+

* Prefer first person for release notes, third person for everything else.

−

* Use the serial comma: one, two, and three; not one, two and three.

+

* Do not abbrev. words.

−

* Cite references, include hyperlinks.

+

* Cite references and/or include hyperlinks.

* Keep it brief.

* Keep it brief.

Line 29:

Line 37:

----

----

−

----

−

−

== Ready for Publication ==

== Ready for Publication ==

−

These articles are ready for publication. Release notes should be posted after tarballs, ideally the last or first week of a month. Other publications should be scheduled one or two weeks later, ideally on the second or third week of the month.

+

These are articles ready for publication. Release notes should follow a release and get published within the first week of the month. Other publications should be scheduled one or two weeks later, ideally on the third week of the month.

−

Note: if you see a comment indicating that a section is FROZEN, any changes you make in that section may go unnoticed as the article is being prepared for distribution. If you find errors in a FROZEN article, go ahead and correct the article but contact Sean (brlcad on freenode [[IRC]]) who may be able to incorporate changes during final publication.

+

==== Cliff Yapp, 2010DEC9: Release 7.18.0 ====

−

'''''Move from Final Review to Here When Ready'''''

+

We are pleased to announce the availability of BRL-CAD 7.18.0. Since our previous public release announcement, there was another 7.16 stabilization release and there have been more than 50 user-visible changes to BRL-CAD. Among those changes include significant development on NURBS support, MGED enhancements, geometry conversion, Windows portability, documentation, and more.

+

BRL-CAD's support for NURBS boundary representation geometry continues to be a primary development focus area so BRL-CAD may faithfully represent external CAD models without having to convert to a polygonal representation. Support for NURBS ray tracing continues to advance steadily with improved wireframes, enhanced surface evaluation, and overall robustness improvements. Enhancements to NURBS wireframes provides a much better visualization of surface contours and ray tracing improvements resolve the majority of previously observed rendering problems.

−

------

+

Numerous MGED command bugs have been fixed including an output formatting problem with '' 'nirt' ''; a problem with '' 'red' '' deleting attributes; garbage output in results from '' 'idents' '', '' 'solids' '', and '' 'regions' ''; and much more. By popular request, the '' 'rt' '' command is now capable of outputting directly to the PNG image file format along with support for PPM, BMP, and BW images. A new albeit preliminary Bag of Triangles (BoT) editing interface has been developed for Archer and MGED to consolidate and organize the various BoT processing commands into a unified easy-to-use interface. Also included is the conclusion of a phenomenal effort by Jesica Guidice who meticulously translated approximately 150 pages of MGED tutorial documentation from English to Spanish. The 16 tutorials are now fully converted while work continues on the technical side towards publishing corresponding PDF documents on the BRL-CAD website.

−

==Final Review==

+

Other fixes include numerous NMG/BoT robustness improvements supporting geometry conversion and export. In support of this robustness work, a new sophisticated '' 'conversion.sh' '' test script is available that attempts to convert all geometry in specified .g files to NMG and BoT format with results reported in a concise and organized manner. With repeatable metrics and numerous failure cases in hand, work can begin towards systematically addressing common problems that affect geometry conversion and export.

Out of only 12 selected, we're very proud to announce that BRL-CAD is participating in the 2014 Google Code-In (GCI) program! Complementary to the highly successful Google Summer of Code program for university students, GCI is a contest to encourage pre-university students (age 13-17) to get involved with open source.This is the third consecutive year, BRLCAD is accepted as a mentoring organization.

−

Read more shall be redirected to -> http://brlcad.org/wiki/GCI2014

+

'''MGED'''

+

* improved NURBS wireframes with interior surface lines

+

* improved support for unlimited object counts in mged

+

* fixed 'erase_all' behavior so 'who' gives correct lists

+

* fixed idents, solids, and regions output

+

* fixed running mged external tools (e.g., rt) after 'cd'

+

* new BoT editing interface for mged and archer

+

* fixed mged zap crash while using preview

+

* added ability to toggle mged status bar via .mgedrc

+

* new mged 'bot' command for accessing BoT properties

+

* fixed nirt output formatting in MGED

+

* mged 'red' command no longer deletes custom attributes

+

* fixed crash using bot_split on non-"plate mode" BoTs

+

* improved NURBS curve evaluation for mged brep command

+

* fixed OpenGL framebuffer Mac refresh bug

−

====Geometry Viewer====

+

'''Ray Tracing & Analysis'''

−

Geometry Viewer-

+

* rt can now output directly to PNG, among others

+

* additional NURBS raytracing robustness improvements

+

* fixed NURBS raytrace bug grazing nearly flat surfaces

+

* fixed 'pnts' point cloud primitive memory access bug

+

* improved robustness of CSG boolean tree processing

+

* added ray bundle shooting capability to rtshot

+

* increased optimized package run-time performance

+

* fixed crash when raytracing multiple frames

−

<b>What is a geometry viewer?</b>

+

'''Conversion'''

+

* increased performance of facetization and export

+

* fixed infinite loop bug converting to NMG and BoT

+

* fixed crash during BoT decimation

+

* improved robustness of facetization and export

+

* cleaner logging of facetize command BoT failures

+

* fixed crash-on-exit bug with iges-g importer

+

* fixed crash tessellating pipes with maximum bends

+

* fixed extrude object tessellation failures

−

It’s a service which allows users to manage all there geometry files. It can upload and view BRL-CAD geometry files in a different format so that others can edit it. But it’s currently under construction.

+

'''Windows'''

+

* ported benchmark suite to Windows (requires 'sh')

+

* improved Windows installer desktop shortcut creation

+

* improved loading of Pro/E export plugin on Windows

+

* added all remaining shape tools to the Windows build

−

<b>It’s the equivalent to?</b>

+

'''External Dependencies'''

+

* libpng updated from version 1.4.1 to 1.4.3

+

* Tcl/Tk updated from 8.5.6 to 8.5.8

+

* added Tktable 2.10 external dependency for archer

−

It’s like a Facebook for files where you can share other files with the public and then they can edit, change or fix the application to make it smother.

+

'''Documentation'''

+

* expanded rtarea documentation with examples and detail

+

* spanish translation for tutorials 4-5 and 7-16

+

* added manual page for 'random' number generator tool

−

<b>Why is it used?</b>

+

'''Archer'''

+

* restored archer view commands to work without a .g file

+

* improvements to the primitive creation menu in archer

+

* improved archer object list view

−

It’s used to allow the user to become more organised and make the user interface easier to follow and understand.

+

'''Misc'''

+

* removed pl-sgi plot tool

+

* removed 'query' command line prompting tool

+

* fixed framebuffer shutdown and memory management bugs

+

* fixed pixhalve memory leak and corruption on exit

+

* fixed heap corruption writing NURBS sketch objects

+

* added fullscreen display mode via F5 keybinding to ISST

+

* fixed memory leak in ISST during window resizing

+

* fixed running multiple framebuffer servers concurrently

−

<b>What is needed to access this service?</b>

+

Please visit the Sourceforge project website to download the latest

+

version: http://sf.net/projects/brlcad

−

All you need on your computer with a Web GL supported browser, BRL-CAD, three.js and a Linux Apache MySQL PHP (LAMP).

+

See the BRL-CAD website at http://brlcad.org for more information.

−

<b>How it works?</b>

−

Using BRL-CAD it changes the format to OBJ and loads it through the three.js all in all it converts then loads.

+

----

+

== Final Editorial Review ==

+

These should be "complete" articles. The author is done with the content and all that remains is a review of structure, grammar, voice, punctuation, and spelling. Images may be added as well.

−

<b>Advantages</b>

−

•Easier for the user to manage

+

----

−

−

•Allows all user to see the file as it converts the format

−

−

•Makes sharing easier and safer due to the fact you still have overall control

Would you like to make improvements to software that vast numbers of users will benefit from?

−

−

Would you like to enhance your resume and gain wider experience? Do you have some spare time?

−

−

We need a software maintainer/release maintainer. Maintainers are needed for free and open source software to perform a variety of tasks. As BRL-CAD is a cross-platform system it has maintainers allocated to many binary platforms but does not currently have one for Windows. We are looking for someone to fill this voluntary role which is critical when releasing software.

−

−

A maintainer is someone who is basically willing to support creating the release for a particular platform (In this case Windows). Typical responsibilities include building source code into a binary package, patching and investigating platform issues, naming and announcing a release.

−

−

To find out more or to indicate your interest, announce your interest either through:

 If you wish for more detail about releases on BRL-CAD, visit this link: http://svn.code.sf.net/p/brlcad/code/brlcad/trunk/HACKING

−

(Go to the section on releases near the bottom of the page)

−

−

 For a definition of a Software/Release maintainer, visit this link:

−

http://en.wikipedia.org/wiki/Software_maintainer

−

−

−

Article written by Alexander Lotsu

−

−

====Google Code In 2013 Updates ====

−

−

The Google Code-in is a contest to introduce pre-university students (ages 13-17) to the many kinds of contributions that make open source software development possible. This is the second consecutive year when the esteemed open source solid modeling tool, BRL-CAD is accepted to participate in Google Code-In, out of the total of 10 organizations chosen.

−

−

Many of you would be wondering about the participation of BRL-CAD in GCI so far and hence, I came up with this post. The contest runs from November 18, 2013 to January 6, 2014. Its December,15 today, where we are exactly half-way on the journey. This year BRL-CAD has received an over-whelming response from young smart talented kids from all around the world, where they are contributing to small itty-bitty tasks of not more than 72 hours based in various domains related to software development and maintenance like Coding, Documentation and Training, Quality Assurance, User Interface and Outreach and Research.

−

−

After many task claims, reclaims, rejection, improvements, exchange of ideas and views between students and mentors via comments, IRC and mailing list and then acceptance of each task, till date, 87 tasks with minutely observed perfection have been closed successfully. 3 tasks are with status 'Needs Work', which means one of the mentors has sent back those tasks for more work. 4 tasks are on the to-be-reviewed list of mentors, 7 tasks currently claimed and 21 tasks are reopened and 85 tasks open with a total of 207 tasks.

−

−

I hope the young brains are enjoying while they work on the kinds of tasks they are comfortable. It is not just about working on tasks, it means much more than that. I bet, being a part of an awesome, cool and one of the most friendly open source organizations and working in collaboration with fantastic perks all across the planet Earth at such a small age will be an astronomical experience for participants.

−

−

A huge thanks to all participants for making it a huge and happening contest. Thanks to all mentors for adding tasks time-to-time to meet the demand and supply curve of fresh new tasks. Special thanks to Sean, the man without whom BRL-CAD's participation in GCI is hard to imagine. All the best kids for rest of the contest. A ticket to Google’s Mountain View, California, USA Headquarters is awaiting for two grand-prize winners. Good Luck ! :)

−

−

====GCI 2013 Quick Update/ Highlights (2)====

−

−

With 12 days, 2 hours remaining for the task to end, i.e. 33% of the contest still remaining, we have got pretty amazing statistics until now.

−

−

After many task claims, reclaims, rejection, improvements, exchange of ideas and views between students and mentors via comments, IRC and mailing list and then acceptance of each task, till date, 162 tasks with minutely observed perfection have been closed successfully. 7 tasks are with status 'Needs Work', which means one of the mentors has sent back those tasks for more work. 2 tasks are on the to-be-reviewed list of mentors, 4 tasks currently claimed and 73 tasks open with a total of 247 tasks.

−

−

We have already crossed 25% more than that of the last year's record. Let wait and watch how far can we go and break our own records.

−

−

Good luck Kids !

−

−

Keep Contributing to FOSS !

−

−

====BRL-CAD Accomplishments : GCI 2012====

−

−

[http://www.google-melange.com/gci/org/google/gci2012/brlcad Google Code -In 2012] brought 69 budding new shoots and branches to the mighty BRL-CAD tree, and the canopy of warmth and love offered by the community helped them blossom and bloom in the 7 weeks of the program . With a few snips, a little trimming and pruning, they have learned, innovated, created and contributed to one of the largest free and open source communities in the world, and have contributed to a software that will touch many people around the world. They now have their roots planted in the BRL-CAD community with the successful completion of their tasks and are ready to shelter budding shoots to come!

−

−

We had 66 students from 36 countries complete 178 tasks in the 7 week contest. Students worked with BRL-CAD on coding, documentation, training, user interface, research, outreach tasks, and quality assurance tasks.

−

−

Akshay Kashyap and Cezar El-Nazli were among the 20 lucky and hardworking [http://google-opensource.blogspot.in/2013/06/google-code-in-grand-prize-winners.html grand prize winners of GCI-2012] who received a trip to Google’s Mountain View, California, USA Headquarters for themselves and a parent or legal guardian for an award ceremony, an opportunity to meet with Google engineers, explore the Google campus and have a fun day in the San Francisco, California sun.

−

−

[http://www.google-melange.com/gci/homepage/google/gci2013 Google Code In 2013] has been already announced. If you are of the age 13-17 years, a pre-university student, this is the best opportunity for you to grab and get your hands on and step into the whole new world of software development and maintenance. Are You Ready ?

−

−

More information on what is Google Code-In, how you can participate, what are the exciting prizes for you, etc. is available [http://brlcad.org/wiki/Google_Code_In here].

−

−

For further queries mail us on our [http://brlcad.org/wiki/Mailing_Lists mailing list] or contact us via [http://brlcad.org/wiki/IRC IRC]

Andrei - Constantin Popescu is a second year undergraduate at Polytechnic University of Bucharest, studying at the computer science department. Here is an interview about Andreis Google Summer of Code project.

−

Plamen(Pl): How did you found out about BRL-CAD and why did you chose to them?

−

−

Andrei(An): I heard about BRL-CAD when I was searching for a Google Summer of Code project to do. After doing some research on their website regarding Google Summer of Code ideas, several interested me particularly.

−

The language I am currently strongest in is C and I am also interested in computer graphics, this motivated me towards applying for BRL-CAD. Another key aspect was that the BRL-CAD mentoring community was very friendly and helpful towards me.

−

−

−

Pl: Why did you choose "Improving BRL-CAD's networking library" to be your project?

−

−

An: The first project idea I proposed was " Code reduction". First, I looked at this project at Sean's suggestion. There were several reasons why I chose this project idea : I was taking a networking course and it would help me consolidate my knowledge and the performance testing seemed a more interesting problem to investigate.

−

−

−

Pl: What were your aims of the project?

−

−

An: My initial aims were to investigate and fix any performance bottleneck regarding transfer speed for various file sizes and package sizes, test the code integrity of networking library and eliminating as many unhandled exceptions as well as eliminating global variables from the networking library.

−

−

“Here are some of Andreis performance measurements for different package sizes:

−

Package size 1 – 2048 - http://i.imgur.com/OPum5.png

−

Package size 2048 – 4194304 - http://i.imgur.com/fH4rL.png

−

Package size 1 – 4194304 - http://i.imgur.com/AXUpN.png ”

−

−

−

Pl: Has this project helped your skills improve?

−

−

An: Definetly! The most important aspect is that I greatly improved my communication skills. Aside of that, I also improved my capacity to work in a team, developed the ability to work with a large code base and of course improved my implementation skills.

−

−

Pl: Would you continue to contribute to BRL-CAD?

−

An: Of course ! I continued to contribute even after Google Summer of Code. Even if my contributions aren't as numerous as I would like because of my crowded academic schedule, I am trying t

== Initial Drafts ==

== Initial Drafts ==

−

These are incomplete articles being worked on. Short 250 to 500-word articles (not counting tables, images, etc) are usually perfect.

+

These are incomplete articles being worked on. Most articles should be between 250 and 500 words (not counting tables, labels, and diagrams) before they have enough content to be considered complete.

BRL-CAD supports 37 geometric primitive solids. A database containing one example of each created and arranged into a chart. Each colored rectangle in the background corresponds to a different type of primitive (ex: the red group contains cones and cylinders). Primitives that fall under multiple categories, like the pipe (made of cylinders and toroids) are contained by multiple background rectangles. The ars and bot examples did not raytrace correctly, but are continuing to be worked on.

−

−

The database can be used not only for a demonstration of BRL-CAD's primitives and their unique uses, but also for regression testing. Outputs from raytracing functions like rtWeight and rtArea can be compared to established normals to ensure changes to the source code do not cause unwanted changes to the way any primitives are raytraced. In the future, a tool to create the database automatically will hopefully be created and added to BRL-CAD's regression testing suite.

−

−

==== Physics Simulation System ====

−

−

BRL-CAD includes a Bullet-based rigid-body physics simulation system. The system takes advantage of BRL-CAD's ray tracing API to detect collisions between arbitrarily-shaped geometry, which are then passed to Bullet for physics calculations. The current system consists of a working demo allowing one object to be subjected to gravity and then collide with a fixed "ground" object.

−

−

Recently, the physics system has received some attention as BRL-CAD works towards support for geometric constraints and joint systems. The goal is to expand the demo into a useful physics system capable of real-time simulation displayable in the Archer interface. In addition to various bug fixes and performance improvements, changes that will be merged soon include a flexible way for users to define simulation scenes using BRL-CAD's attribute system along with a simple combination-based scene description.

−

−

A video of the improved simulation system can be viewed at https://www.youtube.com/watch?v=xzaKWzntnmc

−

−

==== Documentation Redux ====

−

−

BRL-CAD was selected to participate in the 2013 Google Summer of Code '''[http://www.flossmanuals.org/news/2013-doc-camp-call-proposals Doc Camp]'''. A team of contributors got together in California, brainstormed, and wrote an entire book for BRL-CAD in just a few days. They created a guide for contributing to BRL-CAD.

−

−

[[File:DocCamp_WorkingHard.jpg|thumb|right|256px|BRL-CAD doc team getting to work writing a book from scratch in less than three days]]

−

−

Contrary to and perhaps because of longstanding efforts, people interested in improving BRL-CAD sometimes find themselves lost in a sea of information. In all, BRL-CAD has more than a million words of documentation across hundreds of manual pages, dozens of tutorials and examples, hundreds of wiki pages, dozens of technical papers, and other resources. It's a lot, created over decades of development.

−

−

Over the course of a week in October, members from our community participated in something fresh. Something different.

A team of individuals traveled to the Google headquarters in Mountain View, California, to participate in a 2-part event: an unconference and a book sprint. Teams for GNOME, OpenMRS, and BRL-CAD arrived on the Google campus and talked about techniques, tools, formats, documenters, and more. By the end of the week, seven individuals from four different countries, three continents, and one oceanic island produced a book for BRL-CAD more than 100 pages in length.

−

−

As free open source software, one of BRL-CAD's greatest strengths is that anyone can get involved and directly contribute. You can make it better. This new book focuses on that aspect and introduces people to the project while providing detailed information for developers, writers, artists, and other potential contributors.

−

−

[[File:DocCamp_Relaxing.jpg|thumb|right|256px|Fresh air break with Allen Gunn of Aspiration and Adam Hyde of FLOSS Manuals]]

−

−

This new effort kick-starts a campaign to dramatically improve BRL-CAD's documentation, starting with this new contributor's guide.

−

−

Attending the camp provided an exciting opportunity to get a grasp on new techniques for documenting and sharing information about our software, hopefully in ways that help us grow our community. BRL-CAD's team included Sean Morrison, Eric Edwards, Cliff Yapp, Harmanpreet Singh, Check Nyah, Isaac Kamga, and Scott Nesbitt. Thank you to Google for their sponsorship, [http://aspirationtech.org/ Aspiration] for magnificently framing the event, and [http://www.flossmanuals.org/ FLOSS Manuals] for directing the production.

−

−

[[File:DocCamp_Team.png|thumb|right|384px|The BRL-CAD Doc Camp Team]]

−

−

−

==== Anurag Murty: Voxelizing Geometry ====

−

Given a set of primitives as input, the voxelize command uses the data obtained from BRL-CAD's raytracer to represent the input in the form of voxels(Volumetric Picture Elements). A uniform grid of rays is uniformly shot on the given input and an approximation of the volume filled in each voxel region is made from the raytracing data. Depending on the approximate volume of the voxel filled, a voxel is classified as IN or OUT of the voxelized output. The voxels are represented as RPPs.

−

Such voxelized outputs have applications in Volumetric rendering and finite element analysis.

-d - Specifies the level of detail(precision in approximation of volume) required. An input of n means that n * n rays will be shot through each row, and an approximation of volume filled is reached averaging these n * n values

−

−

-s - Specifies the voxel size in each direction.

−

−

-t - Specifies the threshold volume to decide if voxel is to be included in the voxelized output.

−

−

new_obj - Name for resultant primitive that is a region containing the resulting voxels.

−

−

old_obj - Name of source primitive or collection.

−

−

−

NOTES-

−

−

1. A greater level of detail usually implies a much better approximation of fill volumes at the cost of more computations.

−

−

2. Lesser voxel sizes give a more precise representation of the input at the cost of more memory requirements.

−

−

3. Threshold value (the argument of -t) should be a value between 0 and 1, and not a percentage.

−

−

==== Cristina Precup: Visualizing Directed Acyclic Graphs ====

−

'''Visualizing Constructive Solid Geometry''' is a project meant to illustrate in an intuitive and interactive manner the hierarchical structure of .g geometry databases.

−

−

For the representation of the hierarchies, the '''Adaptagrams''' graph library has been used. This made possible organizing the objects contained within the database into directed acyclic graphs.

−

−

Following, are the steps that have been taken in developing the graph layout API:

−

−

* Integrate the Adaptagrams library into BRL-CAD.

−

* Traverse the geometry database and distinguish different types of objects (''primitive'', ''combination'', ''non-geometry'') within it, as well as, establish the operations between them (''union'', ''difference'', ...). Add all this data to the graph structure constructed with Adaptagrams.

−

* Display the objects using a Tk Canvas widget inside a window.

−

* Develop a ''decorative routine'' that sets different colors for different types of objects, correspondingly.

−

* Create a name label for each represented object.

−

* Develop a layout algorithm that aligns the nodes of the graph in a hierarchical way.

−

* Introduce the '''graph''' command in both '''MGED''' and '''Archer'''. It has two subcommands:

−

** '''show''' which displays a list with the name and type of the objects along with the nodes' and edges' positions;

−

** '''positions''' that lists the names, types and positions of the corresponding nodes within the graph;

−

* Introduce the '''igraph''' command in both MGED and Archer. This command pops up a graph based visualization window of the currently opened .g database. Its documentation can be found in ''brlman''.

−

−

As an example, here is how the graph for the ''share/db/axis.g'' database looks like now:

−

:[[Image:Graph_editor_v2.png]]

−

−

Further work that can extend the ''interactive'' trait of the graph layout API includes adding user actions upon the graph such as ''move'' (dragging a node) or ''delete'' functionalities.

−

−

==== Ksenija Slivko: Reducing Code ====

−

−

===== Abstract =====

−

The main aim of this project was to decrease the number of lines of code in the project. Since the project is being developing for quite a long time there were many "copy-pastes". They were redacted.

−

−

===== The process of developing =====

−

Coding period can be divided into three parts:

−

* reduction in the single files

−

* reduction in different files in the single program or library

−

* reduction in different libraries

−

−

===== Improving =====

−

Since the project is quite large the redaction can be continued

−

−

==== Laijiren: NURBS Tessellation: What, Why, How? ====

−

===== Abstract =====

−

Non-Uniform Rational B-Spline surfaces are widely used in CAD system. But they are not suitable for direct visualization on modern GPU systems. Today’s graphics hardware supports the high-speed display of polygonal objects consisting of triangles. This means that analytical surfaces (like NURBS) need to be triangulated so they can be displayed by 3D graphics cards.

*add 'plot SCV' to display control point net and 'plot TESS' to display the result of tessellation

−

−

===== For surface tree =====

−

*subdivide a Nurbs surface in a adaptive method and a new recursion termination condition for surface subdivision.

−

reference:NURBS rendering in OpenSG Plus

−

*implement the doTrimming function in Surface tree.

−

1)compute the intersection between trim curve and rect's edge of sub-surface in parameter region

−

−

2)implement a trimLoop class to get the valid loop and the trimmed loop

−

−

3)triangulate the valid loop in form of polygon

−

−

==== Suryajith Chillara: Benchmark Performance Database ====

−

===== Abstract =====

−

The main idea is to store the data both in the database and the log files stored in the archive. The storage in the database enables the content to be searched via the parameters such as machine descriptions, versions, results and could be compared. The storage as a file in the archive is to maintain a back up of the file and whenever a developer needs a specific bunch of benchmark logs, he could get them from the archive with or without the help of the database.

−

−

===== Main Components =====

−

* '''Log Parser :''' The data of the log file needs to be parsed and the relevant and important information has to be logged in the database so as to make the data access for the graphic display through the frontend could be made possible.

−

* '''Web API :''' Implemented via the bottle framework so as to submit the logs from the brlcad installation via scripts.

−

* '''Web backend :''' A backend has been implemented as a MVC framework from scratch using the python bottle framework.

−

* '''Frontend :''' The website that can offer multiple mechanisms for adding new performance run data into the database and provide multiple graphical and non-graphical visualizations of aggregate performance data (i.e., graphs, charts, tables, etc). Graphs, tables and charts are generated with the help of Google Charts via wrapper which generates the javascript code to interact with the Google Charts service.

−

[[Image:Absavgperfvsimagescomb.png]]

−

−

−

Plumbing between these components is via the python scripts.

−

−

−

===== Tool & Service dependancies =====

−

* Python 2.7 and libraries

−

* Bottle web framework

−

* MySQL

−

* Google Charts

−

−

==== Wu Jianbang: NURBS surface-surface intersections ====

−

I focused on the "NURBS surface-surface intersections" project after the mid-term evaluation of this year's GSoC, before which I worked on converting implicit primitives to NURBS B-rep forms.

−

−

The function calculating NURBS surface-surface intersection curves is surface_surface_intersection() which is declared in include/nurbs.h and implemented in src/libnurbs/opennurbs_ext.cpp. It outputs intersection curves in 3d space and in both surfaces' UV parameter spaces.

** Split the two surfaces, both into four parts, and calculate the sub-surfaces' bounding boxes

−

** Calculate the intersection of sub-surfaces' bboxes, if they do intersect, go deeper with splitting surfaces and smaller bboxes, otherwise trace back.

−

* After getting the intersecting bboxes, approximate the surface inside the bbox with two triangles, and calculate the intersection points of the triangles (both in 3d space and two surfaces' UV space)

−

* Fit the intersection points into polyline curves, and then to NURBS curves. Points with distance less than max_dis are considered in one curve.

−

−

It needs to be mentioned here that the value max_dis can be provided by the user or generated automatically.

−

−

Besides, after calculating the intersection curves, the next steps towords evaluated NURBS are splitting the surfaces into sub-surfaces with the intersection curves as their boundaries, and some inside-outside tests to decide which sub-surfaces should be included in the final object. Some work on splitting has been done, generating some b-rep faces that can pass IsValid(), but still further work is needed.

−

−

==== Andrei Popescu: Network Performance Testing ====

−

−

The project that I have been working on during the summer, as part of the Google Summer of Code program,<br> can be broken down into three independent parts and it consisted in running various tests for the BRL-CAD<br> networking library(Libpkg) .

−

−

*Speed testing and investigations to uncover any potential performance bottleneck.

−

*Unit tests and code review to find and cover any untreated exceptions(crashes) in the Libpkg library.

−

*Eliminate the assumption of globals in the API.

−

−

For the first part, I have run two types of tests : <br>

−

−

Local ones, both the "sender" and the "receiver" were located on localhost.

−

The script gathered data<br> regarding the transmission speed for each set of package sizes (Here, package refers to the package <br>created by networking library, not networking packages) respectively file sizes.

−

−

Remote ones, where the "sender" and the "receiver" were on separate machines, connected using SSH.<br> The script ran and the data gathered was done in the same way as the localhost one.Using the data <br> obtained from the tests, two 3D graphs were drawn.However, the tests were inconclusive, I could not find<br> an "ideal" package size to use regardless of file size.

−

−

After Mid-term I focused mostly on second part. I used test units from libbu(Utility library) as an example<br> for the unit test type and design.

−

When the mentioned tests were run, several exceptions that caused<br> crashes were discovered. Lastly, I have written fixes for the discovered crashes.

−

−

The third part of the project has not been covered yet, so more work is needed.Although, I am doing my<br> best to finish it in the following weeks.

−

−

==== Chris Dueck: Calculating 2D Sketch Surface Area ====

−

−

Calculating the surface area of a 2D Sketch primitive is not a trivial task. Sketches are created interactively by the user, and can contain straight line segments, circular arc segments (and full circles), as well as Bezier and NURBS curves.

−

−

The method used to approximately compute the area of a 2D sketch is as follows:

−

−

*1.) Approximate the sketch by a polygon

−

*2.) Compute the area of the polygon exactly using Green's Theorem

−

*3.) Add the areas of any circular arc segments that were created during (1)

−

−

To approximate the sketch by a polygon, each possible curve type of a sketch must be considered.

−

−

*If the curve is a straight line, it need not be approximated.

−

−

*If the curve is a circular arc, it must be determined if it is a full circle (in which case its area can be computed easily) or if it is a circular arc segment. If it is a circular arc segment, the line segment from the beginning of the arc to the endpoint is added to the polygon, and the excess area of the circular arc segment itself can be calculated easily (https://en.wikipedia.org/wiki/Circular_segment)

−

−

*If the curve is a Bezier curve, it can be approximated by a series of circular arcs. The algorithm used can be found here (http://itc.ktu.lt/itc354/Riskus354.pdf). The algorithm recursively subdivides the Bezier until it is approximated to tolerance by a biarc and uses the curvature value of the Bezier at a point to determine the depth of subdivision. Then each circular arc in the approximation of the Bezier curve is treated as above.

−

−

Finally, the area of the polygon can be efficiently calculated using Green's Theorem (http://www.softsurfer.com/Archive/algorithm_0101/algorithm_0101.htm#3D%20Standard%20Formula) using cross products.

−

−

==== Cliff Yapp: NURBS Ray Tracing in BRL-CAD ====

Over the past year, an intense development effort by BRL-CAD's development team has successfully implemented raytracing of Non-Uniform Rational BSpline (NURBS) geometry within the BRL-CAD Computer-Aided Design (CAD) package. NURBS surfaces are very general, very complex mathematical shapes used by virtually all modern commercial CAD software packages. Because BRL-CAD did not originally support this type of geometry, commercial models could only be imported into BRL-CAD after a labor-intensive and difficult conversion process from NURBS form to triangle-base geometry (referred to in BRL-CAD as Bags-of-Triangles or BoTs). The new NURBS raytracing capability builds on work by many developers over a period of years, who in turn built on the open source library OpenNURBS. Support for this primitive type means BRL-CAD can now store and raytrace data from commercial models without requiring preliminary conversion to another type of geometry.

Over the past year, an intense development effort by BRL-CAD's development team has successfully implemented raytracing of Non-Uniform Rational BSpline (NURBS) geometry within the BRL-CAD Computer-Aided Design (CAD) package. NURBS surfaces are very general, very complex mathematical shapes used by virtually all modern commercial CAD software packages. Because BRL-CAD did not originally support this type of geometry, commercial models could only be imported into BRL-CAD after a labor-intensive and difficult conversion process from NURBS form to triangle-base geometry (referred to in BRL-CAD as Bags-of-Triangles or BoTs). The new NURBS raytracing capability builds on work by many developers over a period of years, who in turn built on the open source library OpenNURBS. Support for this primitive type means BRL-CAD can now store and raytrace data from commercial models without requiring preliminary conversion to another type of geometry.

The last major feature needed to make import of commercial models in BRL-CAD straightforward is conversion support for ISO’s "Standard for the Exchange of Product model data" or STEP file format. STEP uses NURBS geometry in its definition, making support for NURBS geometry a necessary prelude to support for STEP import. Most commercial CAD modelers support this file format as an output option, hence STEP support in BRL-CAD would allow a direct path for moving geometric descriptions from a variety of commercial modelers to BRL-CAD. Considerable progress has already been made on STEP import support, but more work is need to bring the code and feature set to "production quality". If anyone would like to join the BRL-CAD open source development effort and has a little familiarity with C++, the step-g converter and its supporting libraries have some simple-yet-useful tasks that would be an excellent and very useful way to explore the project - join BRL-CAD's IRC channel or development email list if you are interested!

The last major feature needed to make import of commercial models in BRL-CAD straightforward is conversion support for ISO’s "Standard for the Exchange of Product model data" or STEP file format. STEP uses NURBS geometry in its definition, making support for NURBS geometry a necessary prelude to support for STEP import. Most commercial CAD modelers support this file format as an output option, hence STEP support in BRL-CAD would allow a direct path for moving geometric descriptions from a variety of commercial modelers to BRL-CAD. Considerable progress has already been made on STEP import support, but more work is need to bring the code and feature set to "production quality". If anyone would like to join the BRL-CAD open source development effort and has a little familiarity with C++, the step-g converter and its supporting libraries have some simple-yet-useful tasks that would be an excellent and very useful way to explore the project - join BRL-CAD's IRC channel or development email list if you are interested!

−

−

==== Erik Greenwald: Bolting ADRT's libtie under the hood ====

−

−

[[Image:BoTvsTie.png|right|thumb|256px|BoT vs Tie pixdiff]]

−

−

Initial progress on the integration of ADRT's libtie "triangle intersection engine" with LIBRT.

−

−

==== Tan YuGin: BRL-CAD's Code Hardening Efforts ====

−

−

A/N: Written as a Google Code-in 2013 task.

−

−

BRL-CAD is a large-scale software based on decades of development and contains over a million lines of code. Its contributors are numerous and come from countries all over the world. Any project of such magnitude is bound to face problems with ensuring consistency and high standards across its various aspects.

−

−

The core team behind BRL-CAD, however, has sought to alleviate such issues as far as possible. In a ‘HACKING’ document included with the rest of the software, the team has provided universal guidelines and good practices for all BRL-CAD code, in areas such as code formatting, organization, and conventions. BRL-CAD also encourages the use of various tools to make it easier for them to check for problems or errors in their work. These tools include the Simian similarity analyzer, a program that detects duplicated code and allows developers to refactor it into space-saving functions, and the built-in CPPCHECK-CLEANUP tool, which checks for issues such as stylistic errors or unused functions.

BRL-CAD enforces the practice of strict compilation, treating all of the compiler’s warnings as matters that have to be resolved before development can proceed. Any detected issues that are in actual fact errors can thus be fixed. Even incorrectly detected errors are often due to weaknesses in the code and can also be dealt with.

−

−

Finally, BRL-CAD has since 2006 participated in the Coverity Scan Initiative, where a thorough source code analysis is performed and a list of detected problems generated. In 2012, a team of core developers met up in person and fixed over fifteen hundred of the issues reported in the latest scan. This reduced BRL-CAD’s defect density to just 0.22 defects per thousand lines of code- less than a quarter of the industry average.

Through a range of comprehensive guidelines and tools that help contributors to ensure that their code abides by these rules, BRL-CAD can thus be developed and contributed to by numerous programmers from across the globe while simultaneously maintaining a high standard and consistency of code, ultimately resulting in a feature-packed yet well-refined software for the larger community.

−

−

==== Anita Leung: Choose BRL-CAD ====

−

−

https://vimeo.com/83215836

−

−

BRL-CAD is a powerful modeling system consisting of more than a million lines of C/C++ code. If you are an ambitious developer, dedicate your passion toward this robust open source project. Practice your abilities and build your assets. BRL-CAD is downloaded and used thousands of times each month by people all around the globe; let your contributions be shared among others. Collaborate with a community of same interests. and join the team today.

----

----

−

========Marie Gita Ribeiro : DISCOVER BRL-CAD===========

−

http://www.youtube.com/watch?v=whnRqAS-UZs&feature=youtu.be

−

−

This free open source modelling system is perfect for anyone interested in and passionate about design. Utilize the endless tools at your disposal as you design with real materials and work with volume and content not just the surface. BRL-CAD is one of the oldest CAD in the world but just keeps getting better thanks to a community of contributors from all over the world. If you still haven't; discover BRL-CAD for yourself and unleash your creativity.

== Idea Hopper ==

== Idea Hopper ==

These are ideas for interesting or useful publications. We need someone to at least write a draft.

These are ideas for interesting or useful publications. We need someone to at least write a draft.

−

−

==== BRL-CAD's Evolutionary API ====

−

−

Talk about BRL-CAD deprecation process.

−

−

==== Introduction to new .deb and .rpm builds ====

−

−

Brief article overviewing the efforts by jordisayol for Debian, Ubuntu, Fedora, and openSUSE. Included are new icons, menu items, mime type associations, and more.

−

−

==== 2010 End Of Year Review ====

−

−

Article giving an overview of the past year's highlight developments with hints at what 2011 may bring. Alternatively, may be the annual statistics review if we switch from fiscal to calendar year reporting.

==== Erik Greenwald: ADRT/ISST Visualization ====

==== Erik Greenwald: ADRT/ISST Visualization ====

Anti-spam check.
Do not fill this in!

Summary:

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors.
If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details).
Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):