Book Generator Addon

Bookmaker is a Blender addon for generating a random-looking collection of books, in either a horizontal row or a vertical stack. I currently support two styles of book, softcover and hardcover, in any mixture. I also allow randomization of sizes and orientations, to make for a less “tidy” look. It can generate a collection of basic Cycles materials that you can customize later, or it can reuse materials assigned to an existing object.

You can get it here:
https://github.com/ldo/blender_bookmaker

10 Likes

Sounds like it could be handy, you should post a screenshot of the result it produces :slight_smile:

Sure, how about this:

6 Likes

I guess this isn’t for 2.80?
Also changing any parameter crashes Blender for me. (Tested on 2.79.6)

I assume you get a Python traceback message – can you copy and paste that here?

No, not for 2.8 (as yet). Has that stabilized yet? Last I checked a lot of the standard addons wouldn’t work.

Just added a new parameter to control rotation clumping, where successive books in a row have a specified probability of sharing the same rotation angle.

Just noticed that there can be a spurious gap between successive rotated books in a row. Fixed.

Where can I see that message?
If you mean Window > Toggle System Console , Blender crashes and quits itself, so I can’t read that message.

I didn’t get any crashes for more than a month, so I think we can call it stabilized. Most of the addons I use have updated to it, so it might be a good time to take a look at the new API.

I normally run Blender from a terminal window, so it appears there. If you launch it by clicking an icon, then I think it goes into your ~/.xsession-errors file.

I don’t think we get any crash files in Windows.


I typed this to command line and hit enter:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community>C:\Users\filibis\Desktop\Blender_2.79.6.lnk -d

And I enabled your addon, Shift+A > Books Row or Stack , then I got this error:

Error   : EXCEPTION_ACCESS_VIOLATION
Address : 0x00007FF734BEAC9B
Module  : C:\Program Files\Blender Foundation\blender-2.79.0-git.45c11c1a1bd-windows64\blender.exe

No idea, sorry. Sounds like Windows trouble.

Run blender.exe --debug-all (inside an open console) to see if it would generate anything useful in the terminal.

I tried --debug-all , that gives this:

redo_cb: operator redo Bookmaker Row
DAG_id_tag_update_ex: id=SR3D View Full flag=7
DAG_id_tag_update_ex: id=SRAnimation flag=7
DAG_id_tag_update_ex: id=SRCompositing flag=7
DAG_id_tag_update_ex: id=SRDefault flag=7
DAG_id_tag_update_ex: id=SRGame Logic flag=7
DAG_id_tag_update_ex: id=SRMotion Tracking flag=7
DAG_id_tag_update_ex: id=SRScripting flag=7
DAG_id_tag_update_ex: id=SRUV Editing flag=7
DAG_id_tag_update_ex: id=SRVideo Editing flag=7

ordered
 OBLamp
 OBCamera
DAG_id_tag_update_ex: id=MAbooks_paper flag=0
DAG_id_tag_update_ex: id=MAbooks_paper flag=0
DAG_id_tag_update_ex: id=NTShader Nodetree flag=0
DAG_id_tag_update_ex: id=MAbooks_paper flag=0
DAG_id_tag_update_ex: id=NTShader Nodetree flag=0
DAG_id_tag_update_ex: id=MAbooks_paper flag=0
DAG_id_tag_update_ex: id=NTBooksCoverCommon flag=0
DAG_id_tag_update_ex: id=NTBooksCoverCommon flag=0
Error   : EXCEPTION_ACCESS_VIOLATION
Address : 0x00007FF7C0E72744
Module  : C:\Program Files\Blender Foundation\blender-2.79.0-git.45c11c1a1bd-windows64\blender.exe

Unless you can narrow it down to a particular line in my Python code, that’s not all that helpful.

It seems to have something with the Cycles material setup. Try sticking some debugs in the code to try to isolate it.

Hmm, I’ve started encountering segfaults myself now. I was able to fix them with a small update; see if that helps for you @filibis too.

No, it still crashes same.

I have done an update to use a separate random seed for the material assignments. This way, changing the number of colours doesn’t disturb the arrangement of the books.

Also, is it preferable for the books to be generated as one object, or as separate objects? Currently they are separate objects, but because they are all selected, it is easy to hit CTRL-J to join them into one if that’s what you want.

I have added a “magazine” object type. This means I had to replace the single slider for distributing the probabilities between softcover and hardcover with three separate sliders for controlling the relative frequencies of the three object types.

1 Like

Now updated for Blender 2.8.

9 Likes

Thank you! :slight_smile: