These days, Blender's interface is completely customizable using Python scripting. To my surprise, I haven't seen any 'Blender for Kids' or similar setups using this yet (hint ;-). Maybe this tutorial by Jonathan Williamson can change that ;-)
Advertisement
You're blocking ads, which pay for BlenderNation. Read about other ways to support us.

About the Author

Bart Veldhuizen
I have a LONG history with Blender - I wrote some of the earliest Blender tutorials, worked for Not a Number and helped run the crowdfunding campaign that open sourced Blender (the first one on the internet!). I founded BlenderNation in 2006 and have been editing it every single day since then ;-) I also run the Blender Artists forum and I'm Head of Community at Sketchfab.
8 Comments
um bart......you're not supposed to be on vacation?
Quote:
I’ll try to post the most important news here, but I need some downtime as well, so I’ll try to ignore BlenderNation as much as I can ;-)
;)
This is great. I know studios will view Blender as more valuable if we can all learn to script!
Whoa !! Back from vacation. wow
You love your job. right?
By the way, hope you enjoy your vaction ,
What is the current recommendation for the format of the bl_idname value? I see Blender’s built-in templates like to use those magic PREFIX_XX_restofname forms. In the tutorial I did for the “Noob to Pro” Wikibook, I use fully-qualified names http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Advanced_Tutorials/Python_Scripting/Object,_Action,_Settings
Another lesson is: pay attention to those Python error messages! They’re even showing up in red at the top of the screen, yet he doesn’t even seem to notice them.
If you mean the error message that happened when he left the () off of layout.row, then that error message doesn't help debug the problem* and it wasn't visible when the error occurred; there was no pop-up notification either.
This happens frequently in that top panel. The error doesn't seem to become visible until another operator is called; you might just need to scroll down, but that's not very helpful for knowing immediately that there's a problem.
*The error says that on line 14 object has no attribute called 'label'. The actual problem was that 'row' was missing the '()' on line 12.