Building a Storyboard tool

I need to draw storyboard with the director and share it with the team.
Usually, I draw on paper.
But this project was bigger than before and had too many scenes (~160).

So this time, I took the decision to use a computer and I bought a cheap drawing interface.
But the question was, which tool to use ??

I looked arround, but there was only a very few, big obscure Windows-only, very-expensibe movie software.

As I'm starting to discover the use of command line, I tried to build a tool that combine multiple programs available on my computer. (for me this mean using Debian packages)

My goal was to share with the team a static website and a PDF that is easy for me to update.

database

The storyboard conatin multiple scenes.
Each scene contain one or multiple shots, that are described by one or more drawings.

It seems to me like a tree hierarchy.

📁 src
    📁 scene-01
        📁 shot-01
            🖌️ image-a
            🖌️ image-b
            🖌️ image-c
        📁 shot-02
            🖌️ image-a
    📁 scene-02
    ...

So I tried using file-system as a database.

Krita to draw

To draw the images, I wanted to used the Krita software.
But I didn't wanted to export manually each time I draw a picture.
I first tried to use the command line tools that Krita have. But it could only export one image at a time and took around 3s to do it.

I fought I was blocked, but then, I discovered that the Kriat .kra file is actually just a zip file.
And it contained a file called merged.png which is the result of merged layers.

I then used Imagemagick to compress the file (a lot!!)

metadatas

Not only images, the storyboards also needed metadatas.
So each shot folder would also have an YAML file inside. It's a text file that looks like that:

valeur: large
mouvement: fixe
focale: 28
info: Plan frontal face à 4 personnes assises sur un banc qui attendent. Sprite sort du champ gauche cadre.

create a website

As I already know one programming language : PHP, I've used it to create HTML templates and to parse the datas.
And it was a real pleasure !

create a PDF

I used Weasyprint to render the PDF.
First I've tried to use it to render the full storyboard.
But to gain some time, I choosed to render each scene page individually.
And then to merged them with pdfunite, a tool from Poppler.
This way I could re-render only pages that was edited.

lauch everything

Finally, a Makefile was there to trigger the render process.
And I used rsync to send updates to a Web server.

result

Here is the result after two month of using it :

https://bev.club1.fr/storyboard/

Each scene PDF can be downloaded individually if people want to update a small part of the storyboard.

what I've learn ?

I was happy to discover a new way (for me) to build tools.
Not by coding an enormous amount of code, but by connecting (piping), many different existing tools.
This is thanks to the POSIX ecosystem.

I was also happy to see that PHP, which is associated to dynamic website, was fun to use for static content.

The team was very happy with the website and PDF that was very lightweight. They used it often on the set on their mobile.

And it was my first Web2Print project !

Github Repo : https://github.com/vincent-peugnet/s