fullscreen
timer
edit
reset

CookieCutter

A CG Cookie Blender Add-on Toolkit

an intro

dr. jon denning

  • assistant prof of computer science at university by day
  • blender add-on developer for cg cookie by night

at university, i teach

  • data structures and algorithms
  • programming languages
  • hci
  • graphics
  • vision

an intro

at cg cookie, i worked on the retopoflow add-on

an intro

in writing rf 2, we ran into many, many problems

in this workshop, i wanted to share some of the solutions that we developed for blender 2.79

a note

the good news: blender 2.80 has already solved or is working on solving some of the problems we ran into! (hooray!)

the neutral(?) news: it does mean that the focus of the workshop has changed

in the end, though, my hope is that the cookiecutter toolkit (or at least most of it) becomes obsolete due to even better blender support

workshop

this is a workshop aimed for other add-on devs, aspiring and current

focus: to share...

  • some coding experience
  • much of the framework of RF via CC

the method:

  • write an add-on to solve modeling problem
  • provide some anecdotes and good practices along the way

an aside

typically these problems can be broken down in 3 parts...

  • 90% is geometry (how the tool does the "magic")
  • 90% is UI/UX (where user interacts with tool)
  • 20% is "glue" ⇐ this is where cookiecutter steps in

disclaimer

i'm not an artist

i know the basics of modeling, but that's about it

disclaimer ⇒ "superpower" (?)

however, i have used this weakness to my advantage

i ask artists tons of questions about how they do their work

the better i understand their problems, the better i'm able to solve them

a tip to artists

learning a little bit of coding might help you better describe your problem to a developer

modeling problems

in general, modeling problems are mostly just labeling problems

"how do i label all my geometry so that i can do something with it?"

good labeling solves the technical side of the problem

python

python is a general programming language

with all of its packages, python is quite powerful

the blender api gives python an even larger set of functions

  • process and manipulate data (ex: mesh)
  • expose some of blender's functionality (ex: opengl, fonts)
  • ability to extend blender through add-ons

however, add-on development is still a "wild west"

retopoflow

rf 1.x tools (contours, polystrips) started as modest modal operators

as these tools grew and matured, they quickly became complex systems

we created frameworks to help us focus our development on what is important: the artist





footnote: sloccount reported almost 24k lines of python code (11k for rf, and 7k for common)

the problem

jonathan: "i frequently follow extrude with loop cut. wouldn't it be nice to have one tool that does both?"

the problem

resources

cookiecutter: github.com/CGCookie/addon_common

×