Advanced NURBS Integration in Blender [for interested users only]

This thread is for contributors to the libNurbana final integration inside blender (clik here)

This is not a place to give your opinion about NURBS general usefulness (vs polygon modeling),
otherwise check Wizzleteet’s thread if you are interested by the project history or general discussion.

Background:

  • generous donator of the Nurbana NURBS core: Justin Shumaker aka Twingy
  • project coordinator from the foundation: Campbell Barton aka Ideasman42
  • original integrator and mentor: Emmanuel Stone aka Eman: firstnameDOTlastnameATgmailDOTcom
  • blog manager: Claas Eicke Kuhnen aka Cekuhnen

Main developer: Laurynas Duburas aka Ladu mentored by Emmanuel Stone

parent links:
Blender for Architecture
Blender Foundation wiki

current state (October 2009):

Previous state:

* 03/05/09:Fixes for curve splitting and knot calculation

* 01/24/09:
Support added for cyclic surfaces and weights to Degree Elevate

  • 12/25/08:
    Welcome to Laurynas Duburas, who works in silence with Emmanuel Stone on various issues/improvements:
  1. No more broken shading for seam on cyclic sufaces

  2. Non-destructive Refine for NURBS, works for weighted, uniform and cyclic surfaces/curves

3.Insert Knots functionality cleaned and new Refine function written (calculates the best place to subdivide a surface)

* 10/04/08:

  • completion of the feature request
  • active svn branch (compiling with scons)
  • a dozen of blender users are ready to donate to this project as a consideration sign.
  • the Demonware firm is supporting this project by giving 2 weeks of paid “free time” to Eman for code cleaning
    *feedback from Eman:
    "Hello all,
    Quick update on the progress I made these past two weeks.
    Here’s the TODO list I worked from:
    http://wiki.blender.org/index.php/Bl…sCurvesNurbana

1. Backwards compatibility is working, libNurbana should be a complete replacement for the current NURBS
engine in Blender
http://atspeedsound.com/blender/Picture%2022.png

2. IsoLines are working (although not made pretty yet):
http://atspeedsound.com/blender/Picture%2024.png

3. Subdivision is working for endtied/clamped/open curves and surfaces:
In U: http://atspeedsound.com/blender/Picture%2025.png
In U and V http://atspeedsound.com/blender/Picture%2027.png

4. Degree Elevation and reduction is working. This allows you to change the Order of a curve or surface without
changing the shape of the surface
http://atspeedsound.com/blender/Picture%2028.png
http://atspeedsound.com/blender/Picture%2030.png

5. Hamed Zaghaghi has made weight editing use the same mechanism as tilt and radius, making it much more
user friendly:
http://atspeedsound.com/blender/weight.png

6. Both Ideasman/Campbell and Twingy/Justin have also started to contribute to this project.

It’s all looking good.
If people want to check out and build the nurbs/ branch, feeback and bug reports would be really appreciated.
thanks!"
-Emmanuel

IMPORTANT: the donations will start soon: if you want to pledge donations to show interest to the coders, please leave an name and an amount here (it does not have to be big amounts, especially with the current state of the economy!!) and the blog will be updated:

Money is not everything: you can also save time to the developpers by reporting bugs.
If bare report is better than nothing, consider a detailled bug report as it speeds up the debugging process and it is greatly appreciate by the coder: this is really quick if you have previous experience with compiling.
IamInnocent has kindly detailled the procedure:

The procedure is not something I invented : it comes straight from the recommendations on the bug tracker page.
First of all one must look if the bug was reported.
If it was then try to reproduce it using the files the reporter provided and following the procedure he/she indicates.
If the bug was not reported :
Installing gdb is trivial and I won’t bother you with that.
Using it is, for us bug trackers, also extremely simple:
- first Blender must be compiled with the BF_DEBUG=1 flag so it will include some debug information; the time to build will be longer;
- then we start gdb this way, inside a treminal, console, anything that has a command line:
gdb -silent --args <path-to-folder-where-blender-is>/blender -d
‘-silent’ is so gdb won’t brag about its ancestry
‘–args’ stands for arguments and, with that option, the ‘-d’ switch of Blender won’t choke gdb
that ‘-d’ switch makes Blender output plenty of useful information to the console.

So, you’ll get this gdb prompt:
(gdb)
Just type : run
and gdb will run Blender as a child process of itself.
Do your things, starting by loading the factory setting in the File menu (very important)
Save a lot so you’ll have a file as near as possible to the moment the problem arises
Once the problem has happened take a screenshot.
If Blender crashed go back to the command line and use the backtrace command. Something like ‘bt -20’ should do as it will output the last 20 lines of the log. Do a trace only if Blender crashed. Don’t be surprised if Blender doesn’t shut down after the crash : gdb, as its parent, keeps it alive as a zombie and as such Blender is waiting for its parent to put it to rest.
If Blender hasn’t crashed there won’t be a trace available so don’t bother with the ‘bt’ command. Just go back to the command line and terminate Blender with the Ctrl-C command of gdb. It will survive as a zombie then too, until gdb is shut down itself with the Ctrl-D command.
Copy the information the -d switch produced (and eventualy the information that ‘bt’ produced) in a text file and save.
Join the documents to your report here with a description of each step that need to be repeated to reproduce the bug.

Lapinou, thanks for posting this.
where is the donation link via PayPal? a

Hi Studioa!:slight_smile:

Thank for your involvement!
At the moment, interested users are pledging donations:
as soon as the final blender coder is chosen (end September), instruction will be given relative to the payment strategy (paypal): You can pledge here (it doesn’t have to be big amount!) and Cekuhnen will update the blog with your name; or you can directly send him an email: info at(no$pam) ckbrd dot de

thank you again!:slight_smile:

Looking forward to this!

ah this should be made sticky

Yes, looking forward to this!

I get paid today!!! Unfortunately, Im also overdue to purchase my books for this year… Do four used textbooks cost >=$500 everywhere, or is it just the US…? Anyway, whatever I have left goes to nurbs! Or maybe next paycheck… :frowning:

Kudos for the enthusiasm, but seriously, if you are a student living paycheck to paycheck, you probably have things to spend money on that are far more important than a nurbs implementation.

Of only ten spend 10$ (six pack of beer) it would add up.

Hi everybody:)
will lose connection to the internet up to the 15th September, so I will proceed my donation after. (mere logic :wink: )
take care

It’s a little unclear as where to donate too. paypal is an option, maybe, but I like the blender foundation fundraiser idea a lot more.

FreakyDude - If we can organise it, I would prefer for the donations to go directly to the BF too. I think it is more appropriate for them to handle the money than a 3rd party.

(Last connection before the 15th)
Hi guys!:slight_smile:
I also agree with FreakyDude and Eman.
Cekuhnen, perhaps you could ask Ton about setting up an abstract product in the e-shop (“Blender Artists Project #1: better NURBS”?) as soon as the feature request is frozen, so that the donator knows the his/her money is used for specific tasks?
Thank again to everybody implied! :slight_smile:

i would donate something, if we all donate even a bit it is possible ;D

I will get in touch with Ton.

He mentioned we should do the donation system on our own
and not involve BF - in a way that we can do this without
needing their help.

What about a dev for it?

Emanuel will you have some time to look into it?
What about the original programmer?

Claas

blendernation had a fundraiser for a school project sometime ago. It was just someone’s personal paypal account used, but the money went to what it was ment for and the site showed a meter for it. Maybe we could do something similiar? plug it to blendernation, complete with donation meter.

Lets do it , it would be cool if people could donate to certain proyects they want to be implemented.

Hi!

Sorry for the bump, but I’m also interested by good nurbs in blender! Count me in for some support! (next month I’ll have 50 euros to contribute I think!)

Thank you Dani! :slight_smile:

Eman posted yesterday a call for interested coder on the bf-committer list:

"Hello all,

Thanks to the efforts of the NURBS fans on Blenderartists [1] interest
in libNurbana in Blender has been revived. I have been working away
slowly on this project since the GSoC (3 years ago!?), but I simply do
not have enough time to progress the project in a timely manner. The
last time I got a significant amount of work done was during my summer
holidays last year, where I refactored the entire project into a nicer
architecture, without a chunk of time to work on it uninterrupted I
find I cannot progress very quickly.

Two things have happened recently which will hopefully change the situation:

  1. My employer has generously agreed to give me two weeks at the end
    of September to work on Blender.
  2. As discussed in the thread above, several people (myself included)
    have pledged to donate money to any willing to help me with this
    project [2].

I hope to use the two weeks to do two things:

  • Make the current nurbs/ branch completely stable and bug free, as a
    replacement for the current nurbs architecture in Blender
  • Mentor a new developer to help with future NURBS development

There have already been a few suggestions for potential candidates for
the coder, but I would like to make an open request on the list in the
interest of fairness, and finding the best possible person for the
job.

If anybody with experience in NURBS or Blender is interested in this
project, please contact me. Please include evidence of your
suitability for this role. The amount of money we raise and the amount
of work expected will probably be comparable to the GSoC. The project
will be broken down into sections, with specific ‘bounties’ for each
section depending on the difficulty.

What does everyone else think?

For anybody that’s curious, the current nurbs/ branch in SVN should
build, but is ‘beta quality’."
-Emmanuel

To sum it up, the project implementation bases and the interested blender coder will be officially known very soon.

Stay tuned! :slight_smile:

[1] or here for all the gory details
[2]

yeah ! .