Alexander Ewering (intrr), has introduced a Blender project fork to create a desktop publishing software called DTPBlender.
From the DTPBlender site:
DTPBlender is a fork of the popular 3D modelling, animation and rendering software Blender. It has slowly evolved and matured as an in-house solution for efficient and flexible Desktop Publishing (DTP) at instinctive mediaworks. Its creator, Alexander Ewering, has decided to release it to the public! DTPBlender offers a very unusual approach to 2D graphics creation, particularly suitable for people who are already comfortable with Blender and its user interface. DTPBlender is currently available as a release for both Windows and Linux, and as source code.
I asked Alexander some questions about DTPBlender and he was kind enough to answer:
Why did you decide to use Blender (or develop this solution from Blender) with so many desktop publishing software available... even free/open source ones like Scribus?
Actually, I know about Scribus and I even tried to work with it :) As you explicitly mention Scribus as an example, I will use it as a reference to explain some of my issues with "mainstream" software:
Let's start with text: I draw a textframe in Scribus. Fine so far. Oh wait, I want to use a different font. I call the "Text" menu in the "Properties" dialog, and there's a font dropdown. Unfortunately, I have 1500 fonts installed on my system, so choosing one of them is a slight pain with a list showing 10 entries at once. Why can't fonts be categorized? In DTPBlender, I can (and did) even put fonts in different directories, depending on their style (regular fonts, handwriting, clipart, etc.). OK, I can press the initial letter of a font name to get further in the list, but still, such a font selection dialog is not great. It still takes me 10 seconds to choose, say, Arial (DTPBlender: 3 seconds). And yes, seconds do matter for me.
Next, I would like to choose the font size. Of course, this is only possible one "click" at a time, with tiny mini arrow buttons. In DTPBlender, you can interactively scale any object, or adjust mostly any parameter (including font size, tracking, leading).
OK, next, choose a color for my text. I click on "Color", and I'm presented with a list of hundreds of colors, again, of course, with only 10 colors showing at a time. I eventually found Edit->Colors, where I can remove unused colors. But hey, am I *really* supposed to call up a dialog (for which no shortcut exists, apparently) each time I want to add or change a color? In DTPBlender, I can just add a new material for each color I want, and the material dropdown will always only show actually *used* colors (with names and previews, which, by the way, also show gradients). I do not need to call up a dialog. I can also import colors (well, I can import *anything*) from other projects easily.
Talking about gradients: The gradient editor in Scribus is not bad... but the Colorband in (DTP)Blender simply is better :-)
What about effects like outlines and drop-shadows? In DTPBlender, you can apply outlines and soft shadows to any kind of object, including images with alpha channels.
What about quick, spontaneous tweaks to images? In DTPBlender, you can do about anything imaginable to an image non-destructively: Adjust brightness, contrast, color, make the whole thing use an arbitrary gradient instead of natural colors, fade alpha using arbitrary gradients, etc... you just have the full power of Blender's material system. You can even blur the image using the Filter setting. I really prefer this over having to switch constantly between Gimp and Scribus and wasting tons of hard disk space for edits to images. Apart from that, I find Scribus' interface to images a pain. It takes a dozen clicks in order to even place and scale your image correctly on the page.
Then, there's just Blender's lovely library block system. The way you can share datablocks like materials, curve data and so on between objects is unique and gives you an incredibly efficient way to work. Other examples are the transform system, which lets you interactively position, scale and rotate objects in a way mostly incomparable to regular applications.
On the whole, I find moving objects in Scribus feels somehow clunky and unpredictable, apart from the fact that it only draws the frame while moving, not the complete object. DTPBlender just has the advantage of using OpenGL - it is just faster and more interactive.
After all, of course, an important reason is that I understand the source code and that I always have the flexibility to add something quickly as soon as I need it.
What features made Blender easy to translate to a desktop publishing solution?
In general, a 3D modeling/rendering/animation package has a lot of concepts in common with a DTP application. Objects, materials (the higher-level version of colors and gradients), the need for an interactive and fast preview, the ability to scale and rotate objects, a decent way of managing all the data in a project, etc.
Blender also makes this easier because of its generic design: It doesn't bomb you with a gazillion special features for specific tasks like other 3D Software does. Instead, it always offered a small, carefully chosen set of generally applicable functionality which is flexible enough to be used for a lot of tasks (example: the particle system, which has been used for flocking, hair, grass, explosions, fire, you name it).
In the beginning, DTPBlender started as a mere collection of hacks in a template .blend - thanks to Blender's "ordered flexibility", this already gave a lot of interesting possibilities.
How long did it take to develop?
So far, it has been a bit more than a year from the first "tweaked .B.blend" experiments to a now vastly changed and enhanced codebase. I'm in the lucky (or sometimes not-so-lucky) position of having a lot of actual DTP work to do, so I could always tweak and enhance DTPBlender as I worked â€“ always oriented towards the practical benefits. DTPBlender is not a theoretical experiment - it has been used for almost all related projects that you can see on my website :)
*Update: DTPBlender now has a forum for general help issues and to show your work!Â
Alexander (and myself) highly recommend taking a look at the tutorials. I did the tutorials and they definitely help in getting your mind in 2D. And with your knowledge of Blender, using and navigating the program will only add to the fairly quick learning curve.