Page MenuHome

A set of curve creation and animation tools, similar to C4D Tracer
Closed, ArchivedPublic


Project: Blender Extensions
Tracker: Py Scripts Contrib
Python: 3.2
Blender: 2.67
Author(s): crazycourier, liero
Script name: bTrace
Wiki page: to be announced
Category: Mesh
SVN Download:
Status: >Release

The purpose of this script is to add tools that are similar to C4D Tracer, these tools will come in particularly handy for motion graphic artists. When the script is installed, a panel shows up in the properties toolbar when an object is selected.

Each tool has it's own button with the options hidden by default, showing the tool also gives the option to show additional settings for that particular tool. The five main tools (Object Trace, Object Connect, Handwriting, Particle Trace, Particle Connect) all share common settings for the most part. Each tool creates a curve as the end result. The settings for the curve created can be setup under the Universal Curves Settings button.

Most of the tools also have the option to add a grow curve animation which animates the curve radius.

A quick explanation:
Brush Trace: Creates a curve by joining points of a mesh in a continuous manner or by all edges. Options to modulate the curves radius or add distortion to mesh before converting.
Objects Connect: Join selected objects with a curve and add hooks to each node.
Particle Trace: Creates a curve from each particle of a system. Keeping particle amount under 250 will make this run faster.
Particle Connect: Connects each particle of a system with a continuous curve.
Handwriting Tool: And updated version of the Handwriting tool from liero and Meta-Androcto, creates an animated curve using the grease pencil.
Grow Curve Animation: Animate the radius of a curve over time. Can be run alone on a curve object, or run with the tools above.
F-Curve Noise: Quick link to add a F-Curve modifier to an object.

Each script has a number of different options which can be used to create some very interesting effects.

A lot of the scripts functionality are based off work from liero and included with his permission. I have to give most the credit for the logic behind these to Liero. Also a lot of thanks to Mackraken who gave me a lot of great advice. Meta-Androcto and Atom have also helped a lot as well, even if indirect ways.

For more info, see the thread on here:

Event Timeline

marking for contrib.
this is one of the most useful & popular scripts in the community.

Moved from Py Scripts Upload to Py Scripts Contrib

[canned response]

We gave you bf-extensions rights, read details at:



* You can work on svn in contrib/ directory

See a help panel about svn here:

Don\'t forget to add a meaningful message at each svn commit

The password for svn is the same as the one you use to log in in this tracker.

* We invited you to our commits mailing list

Please subscribe, so that your commit mail will be sent to
subscribers instead of hanging on
You should have received a mail already about it, if not,
please leave a line here, thx!

* Move your script in contrib/ directory in svn (if it\'s not
there already)

* We are assigning this script to yourself, so that you are
responsible for maintenance.

Please click on "Monitor" to receive updates when people edit
your extension tracker page

* Finally, we have moved this tracker page from the original
location in "Upload", so check the tracker_url field and commit
in bf-extensions

Thanks and welcome aboard! :)

assigned to crazycourier
marked for 2.62 release

hi, script review by truman:
1. No need to do "p=bpy.props" if you've already done "from bpy.props import *". Can just do EnumProperty rather than, p.EnumProperty.
2. Error when "Create Curve" is used without an object selected.
3. Warnings about "OBJECT_OT_btobjectsconnect", "PARTICLES_OT_particletrace" and "PARTICLE_OT_connect", description ends with a "."
4. No need to do "if (a in something) == False" should do "if a not in something"
5. Don't use single line for loops "for m in c.modifiers : c.modifiers.remove(m)" it's not prefferred
6. Shouldn't use int(random.random()*(1+len(verts))) use random.randint() instead, should also avoid problems of including the endpoint number
7. Don't think adding "bpy.selection" is good practice, it is a bit polluting IMO and is only related to this script
8. Some indentation needs to be fixed, there are a lot of double tabs where there should only be 1
9. No need to write your own minimum finding function (see line starting with "for px in li:") use the builting min() with key instead.
10. Could considering getting/setting properties using foreach_get, foreach_set
11. random.random()*2 - 1 could be replaced with random.uniform(-1, 1)
12. "print('Its curvalicious')" ??

space for review made here;

thanks :)

Due to changes to the api including the merging of bmesh, several addons are outdated.
Please, if you are the author of an addon check your script with blender revision 44256 or newer.
That is builds made After blender 2.62 official release.
I would ask that updates be made to your addon before the Blender 2.63 release.
6-8 weeks away.
This allows time for the api to become more exposed & bmesh to stablize furthur.
If you need help, drop into irc freenode #blenderpython or #blendercoders & feel welcome to ask questions.
At the time of 2.63 release, scripts that are not repaired or in active developement will have their tracker page marked "Closed"
this will not affect your links to the tracker, similar to closing scripts in 2.49b, the page will be still availible & can be re-opened.

Thanks for your understanding & patience during these Exciting Times.

hi, it seems the mesh follow has broken recently.
could you check & drop in irc please.

This task was automatically closed as archived as part of migration, because it was determined to be no longer active.

The authoritative list of addons is on the wiki, we no longer have a report for each addon to track bugs and updates. Bugs can be reported individually and assigned to the addon developers. See the Addons project page for more information on the workflow.