Files
davideisinger.com/static/archive/muffinman-io-lxkzuw.txt
David Eisinger 56c023648e add links
2025-03-02 01:14:03 -05:00

556 lines
23 KiB
Plaintext

[1]Jump to content
[2] [4] Art /[5] Blog /[6] Projects /[7] About /[8] Stats /Search
The Tiny Book of Great Joys
10. February 2025
Posted in [12]Random
· 19 minutes read
If you are interested in how I over-engineered the process of making a tiny
book for my wife, using AI, a pen plotter, a 3D printer, and a lot of time, you
are in the right place. The book is titled The Tiny Book of Great Joys (Mala
Knjiga Velikih Radosti in Serbian) , and here is how it turned out:
The Tiny Book of Great Joys sitting on the table slightly open with the title
page showing
[13] Photo 1 [14] Photo 1 [15] Photo 1
My wife is delighted with it, so it was worth all the effort.
This post will take you through the process. It will be a long one, but please
stick around - I promise there will be a lot of pretty pictures.
Here is the outline of the post:
• [16]The idea
• [17]Drawings
• [18]Text
• [19]Plotting
• [20]Bookbinding
• [21]The finished book
• [22]Timeline
• [23]Conclusion
The idea[24] #
I had this idea for a while after seeing something similar somewhere on the
internet.. Since then, I always wanted to make one for my wife - a physically
small book with a bunch of small drawings of our memories together, inside
jokes, and little things she likes.
I wanted the illustrations to be hand-drawn, and I had a plan to ask my friend
to do them. But I knew he would refuse any kind of payment, so I felt bad
adding more work to his plate. So I shelved the idea, but every now and then,
it would pop up in my head.
Fast forward a few years - we got a kid, and our routine completely changed. We
are enjoying it a lot, but it can be very exhausting, and every day seems
identical to the last. That's why I decided I needed to do something for her to
break the routine. The book idea seemed perfect - personal and handcrafted - so
I gave it a try.
To be able to do everything myself, I went to create digital drawings and then
draw them on paper using my trusty pen plotter.
With the idea in place, I moved on to creating the drawings - which turned out
to be a challenge of its own.
Drawings[25] #
For pen plotting, one needs vector files, so I started drawing in Figma.
Unfortunately, I quickly realized that my drawing skills would not get me the
result I had envisioned. Determined to do it this time, I decided to try using
AI to generate images.
Midjourney[26] #
I got myself a Midjourney subscription and started playing with it. It took a
lot of failed attempts to figure out how to get drawings that were simple and
had a strong hand-drawn feel to them. Even then, I ended up editing every one
of them, but more on that later.
One of the first images I was satisfied with (it didn't end up in the book,
though):
Black and white drawing of a cute fox curled up sleeping.
It took a lot of time, but it was fun. Failed attempts were often quirky and
funny, and I was learning how to use the tool. And it made me feel like a
secret agent, doing it next to my wife, who had no idea what I was up to.
A bunch of attempts at drawing Link from Zelda
Prompting[27] #
I may be wrong, but I think Midjourney wasn't built for the kind of
illustrations I had in mind. I was after simple, hand-drawn illustrations that
felt personal. Luckily, I found a style reference (--sref 230156437) that
worked well for my case. I used it to generate almost all of the drawings that
ended up in the book. For those who haven't used Midjourney - you can use
images as style references to influence the style of images you want to
generate.
Most of my images were generated using that sref code and a style weight (A
number that tells Midjourney how much the reference should influence the final
output) between 150 and 400 (it can go from 0 to 1000).
As for the prompts, these are the key terms I combined with the description and
the style reference:
• black and white
• vector line art
• stylized simple drawing
• solid white background
• isolated on white background
• low detail
• clean edges
• sketch
• rough sketch
• children's coloring book
It took me a lot of tries - between 10 and 30 attempts for each image you see
in the book.
AI to Plotter[28] #
Once I solved the image generation part, I had to figure out how to turn them
into vector files for plotting. The first thing I tried was something similar
to halftone. As you can see below, in this process, the images completely lost
the hand-drawn feel.
The same fox drawing, but but drawn with a lot of small dots, using technique
similar to halftone
Then I remembered [29]this plot of Marble Machine X I did a while ago, for
which I used AutoTrace to convert the original image to a vector file. The
great thing about AutoTrace is that it supports "centerline tracing". And this
time, I learned that Inkscape has a great AutoTrace plugin, which made it even
easier to convert.
What makes centerline tracing different[30] #
Most of the tools that convert raster to vector images do it by outlining
shapes. This is not suitable for plotting, as each line in the original image
becomes a sausage-like shape. Centerline tracing, on the other hand, tries to
draw a single line following the middle path through shapes. Don't worry if it
sounds confusing; the example below should make things clearer.
Here is the image of Link from The Legend of Zelda generated by Midjourney:
Black and white cartoony drawing of Link from The Legend of Zelda standing with
a sword and shield.
After applying a common vectorization technique, we get this. As you can see,
each line in the original drawing is now outlined, creating this messy-looking
image.
Vectorized image of Link using common vectorization technique with each area
outlined black
But if we use centerline tracing, it suddenly looks a lot more like a drawing.
It is not perfect, but don't worry - we are going to clean it up in the next
step.
Vectorized image of Link using centerline tracing, looking much more like a
real drawing
Cleaning up[31] #
In the points where lines touch or cross, AutoTrace is not sure which line to
follow and creates these funky-looking joints. Here is an exaggerated example
to show you what I'm talking about. Input is the raster image at the top and
the vectorized result is at the bottom:
Lines that are crossing and touching before and after centerline tracing
But I found out that if I roughly separate these lines, I get a much better
result.
Lines that are crossing and touching, but slightly separated before tracing,
with the result being much better
Let's now apply this technique to the image of Link we've seen above. After
separating lines (and some cleaning up) this is the image I ended up with. It
is rough, but it is only used as an input for the tracing process, so it
doesn't really matter. This was manual and somewhat tedious process, but I
enjoyed it overall. It was a sort of meditation for me.
The image of Link, but this time with lines slightly separated and details
removed
And finally, when we trace this image, we get a really nice and clean vector
file perfect for plotting. Very clean vectorized image of Link
Here is another example. We start with the image I generated using Midjourney:
Black and white drawing of a woman, man, little girl and a dog walking in a
forest
After editing, removing details and separating lines, we get this one:
The same image of the family walking in the forest but with lines separated and
some parts redrawn
And the traced vector result:
Vectorized image of of the family walking in the forest
You'll notice that in both examples I did some redrawing (For example, in the
second image, I redraw the dog completely to look like our dog Zappa.) . I did
that for pretty much all of the images, to fix things I wasn't able to polish
using prompts. I also removed a lot of details to make sure images are crisp
and readable at the small size.
Final image flow[32] #
All of this took a lot of experimentation, but it gave me a pretty solid
workflow which I used to generate all of the images. The complete flow looks
like this:
• Generate images using Midjourney.
• Upscale them two times, because upscaled images were easier to edit and
tracing was more precise.
• Clean up, redraw and separate lines by hand using Gimp.
• Use Inkscape plugin to run AutoTrace centerline tracing.
It took me a while to generate all the images, and the fact that I was trying
to keep it a secret from my wife didn't help. I think I did it over the span of
two weeks, mostly in the evening after she would go to bed.
Ganon (Name of the main villain Link fights against in The Legend of Zelda
series) never stood a chance![33] #
Before we continue I just want to show you two funky images of Link that really
made me laugh:
Funky looking Links generated by Midjourney
Midjourney please staph!
Text[34] #
With the drawings ready, I turned to the next crucial part - the text. I first
wanted to write everything by hand, photograph it and then vectorize it in the
same way I did with the images. But it was a hassle - I had to do a lot of
editing for text to look as my handwriting.
Evil Mad Scientist, the maker of my pen plotter, has a fantastic tool called
[35]Hershey Text. It contains a bunch of single-line fonts ideal for plotting.
I chose the EMS Elfin font as it looked playful and hand-drawn. I used it to
write all of the text in the book and I think it turned out great.
Here is how it looks:
Title of the book in English and Aerbian in EMS Elfin font
Plotting[36] #
The tricky part with bookbinding is that pages are not printed in order, but in
a way that when you fold the sheets in half, you get the right order. I used
Figma to design the layout, with a great care to make sure pages are in order
after double-sided plotting.
Here is the layout laid out on A4 sized paper. Sorry for blurring the text, but
a lot of it is very personal and I want to keep it for our eyes only.
Layout of the book ready for plotting
Plotting is the part that went the smoothest, but not without hiccups. I
usually use Pigma Micron blackliner markers. They use archival quality ink and
they are literally indestructible. But this time, even the thinnest one I had
was too thick for the book this small.
Here you can see the first two test plots (Sorry for the poor quality photos, I
threw the plots away, so these are the only ones I have) using markers of 0.2mm
and 0.1mm thickness respectively. Lines got a bit smudged and looked much
thicker than I expected. This was also the moment I realized I need to remove a
lot of details (A friend of mine said that in these plots, Link looks like he
has measles) from the images to make them readable at this size.
Test plot using 0.2mm marker Test plot using 0.1mm marker
I needed to find a thinner pen.
Technical pen to the rescue[37] #
Blackliner markers were made as a more practical replacement for technical
pens. But from what I've read, an old-school technical pen was the only thing
capable of achieving super-fine lines I wanted. I went online and ordered
Rotring Isograph 0.2mm. As soon as it arrived I sneaked out to my study and did
another test plot using it. Oh boy, was I happy when I saw the result:
Test plot using a technical pen
Lines were thin and crisp and at this point I was convinced the project will be
a success!
Smudged drawings[38] #
All of the first plots were done on 120gsm printer paper. It is somewhat thick
paper and drawings looked fantastic. Unfortunately, when I bound the pages
together, the drawings and letters would get transferred on the opposite pages.
I could probably get away with it, considering the whole hand made feel of the
book. But I wanted it to be perfect.
A friend advised me to leave ink to dry for a few hours. I left each side to
dry for 24 hours, but it smudged again. Next time I tried putting the plot
(before cutting the pages) between two sheets of papers and pressing it with
heavy books. I did that for more than 24 hours, but still after cutting and
bounding the pages, they got smudged again. At this point I was becoming
somewhat desperate. As the last resort I ordered different, 100gsm paper and to
my relief it worked! Crisis averted!
In the final version you can still see tiny traces on a few pages, but these
are barely visible and don't really bother me.
After plotting and cutting I was left with a stack of somewhat delicate pages.
Now, it was finally time to turn them into a book.
Bookbinding[39] #
As you can imagine, I had zero bookbinding experience. There are a lot of
resources online, but two of them were crucial for my project as they were on
how to bind tiny books:
• [40]Mini BookBinding Marathon video
• [41]How to Make A Miniature Hardback Book article
After reading and watching these and a few generic articles on bookbinding, I
gathered enough info to try doing it myself. I thought I was super clever
because I 3D printed sides and spine of the book. I designed sewing holes in
the spine so I can connect the pages directly to it without using glue. It was
a decent idea, but it left a gap between two signatures (In bookbinding, a
section, gathering, or signature is a group of sheets folded in half.) . Still,
I went with it for the first try.
3D printed spine with two book signatures already sewn to it
I laid everything down on the canvas that the book would be wrapped in and
started assembling it. But I made a crucial mistake - I used super glue. It
dries quickly, it is stiff, and doesn't glue 3D printed plastic well and it
dissolved the paper I used. Long story short, I made a mess. But I didn't
stress too much, I just proclaimed that version is a prototype and used it as a
learning experience.
I ordered proper bookbinding glue (PVA). While I was waiting for it, I focused
on properly sewing the pages together.
Sewing the pages[42] #
The first time I sewed the pages together, I poked the holes by hand and they
were somewhat uneven. Again, it was nothing major, but I didn't like it. So I
designed and 3D printed a simple tool to help me drill the holes evenly.
The tool has two parts, and the pages fit snugly between them. Both top and
bottom parts have holes, so I was able to put the needle through and poke
perfectly even holes in the pages. I'm very proud of this silly contraption.
3D printed tool, closed, with needle poking through it
3D printed tool, opened, with the sheet with sewing holes visible still in it
Here you can see all of the eight sheets with sewing holes.
All eight sheets with illustrations ready for sewing
Fun fact, I designed all 3D parts using JavaScript and [43]Replicad library.
Here is [44]a link if you want to play with the model in your browser.
[45]Application showing code and the 3D model
But I ditched the 3D printed spine and used the technique called pamphlet
stitch, which works great when you have only two signatures. It made signatures
way more tight than when I connected them separately to the 3D printed spine.
Two book signatures sewn together using pamphlet stich
Two book signatures opened at the exact point where they meet
Glue arrived[46] #
When the glue arrived, I plotted everything again and took it from the top. I
swapped 3D printed sides for cardboard. Using proper glue was a game changer. I
had enough time to apply it before it hardened, and when it dried it stayed
flexible. And when it got onto my fingers, it was easy to remove. Everything
was much cleaner, and I finally managed to put it all together.
Unfortunately, I was rushing to finish the book, so I didn't take any photos of
the process. But here are a few I do have:
Cardboard sides laid out in the bookbinding canvas
If you are an experienced bookbinder and reading this, I'm sorry for the
bookbinding crimes I probably committed. I promise I won't use super glue
again.
The finished book[47] #
It looked great! It was not perfect (more on that below), but I was super happy
with how it turned out. It had a distinct handcrafted feel to it, the images
turned out fantastic, and I think I really managed to bring out a personal
touch with it.
On the day I finished the book and gave it to my wife, we were both exhausted
(our kid was teething, and we had a very rough night), so I thought she would
appreciate a little pick-me-up.
Book opened on the table showing the illustration of the family walking in the
forrest
When I gave it to her, the first thing she asked was, "Will I cry?". She was
brave, but it definitely got her all mushy and made her day. After reading, she
carefully put it on the shelf, out of the reach of the little one.
Then I asked her if she ever suspected I was preparing a surprise for her, and
she said that she had no idea. But she also said that she thought it was weird
that I would often plot something and not brag about it to her afterwards. It
was true, I love showing her my work, but luckily she didn't give it too much
thought, and I was able to finish my secret project.
Book opened on the table showing the illustration of Link from The Legend of
Zelda
One thing I would like to fix[48] #
Like I mentioned, the book isn't perfect. The sides are a bit too large, so the
pages seem too deep inside when the book is closed. For the same reason, the
end pages turned out to be a bit short, which gives it a weird, uneven look. It
is purely aesthetic, but I think it is the only thing keeping it from being
perfect.
Lesson learned if I ever end up doing something similar.
Timeline[49] #
It took way longer than it should have—it took me a month and a half to finish
it. It took so long because I did it in secrecy, which meant working late in
the evenings when my wife and kid were asleep. A bunch of little failures...
ehm, I mean learning opportunities also prolonged the project. And finally, I
had to order multiple things, so I was blocked a few times while I was waiting
for four different deliveries.
But the final assembly took me around two and a half hours from start to finish
- plotting, cutting, sewing, and bookbinding. Mostly because I had already
practiced all of them and defined the exact process.
Conclusion[50] #
It was so much fun. I love projects that span across multiple disciplines. This
one touched AI, drawing, plotting, modeling, 3D printing, sewing, and
bookbinding. I encountered a lot of little hiccups, but I also learned about
all of them. Some of the errors I made could have been avoided if I had been
more patient. But I hope you'll cut me some slack - I was super excited and
eager to see how it would turn out, and I had limited time windows when I could
do it in secrecy. Still, I need to take it as a lesson - being patient will
help me save time when doing projects like this one.
The highlight for me was that I could do it without an illustrator. Love it or
hate it, AI ended up being a fantastic tool that filled the gap in my skill
set, which was crucial for making the book.
I hope you enjoyed this write-up as much as I enjoyed making the book and
writing the post. And I do hope I inspired you to try making something of your
own. If I did, please reach out on GitHub, I would love to see it.
Share on:
[51] [52] [53] [54]
Related Posts
[55]
Letters from Sarajevo
26. March 2020
[56]
Bunny jumps again
23. February 2025
[57]
Custom giraffe caret
20. June 2023
[58] RSS Feed
[59]
© 2016-2025. All rights reserved.
Written with ♡ by Stanko Tadić.
[60]Home/[61] Art /[62] Blog /[63] Projects /[64] About /[65] Stats /Search
Menu and search
[67]
Search[69][ ]
[70] Art [71] Blog [72] Projects [73] About [74] Stats [75] RSS Feed [76]
GitHub
References:
[1] https://muffinman.io/blog/the-tiny-book-of-great-joys/#content
[2] https://muffinman.io/
[4] https://muffinman.io/art/
[5] https://muffinman.io/blog/
[6] https://muffinman.io/projects/
[7] https://muffinman.io/about/
[8] https://muffinman.io/stats/
[12] https://muffinman.io/archive/#random
[13] https://muffinman.io/img/tiny-book/the-book-02.jpg
[14] https://muffinman.io/img/tiny-book/the-book-03.jpg
[15] https://muffinman.io/img/tiny-book/the-book-04.jpg
[16] https://muffinman.io/blog/the-tiny-book-of-great-joys/#the-idea
[17] https://muffinman.io/blog/the-tiny-book-of-great-joys/#drawings
[18] https://muffinman.io/blog/the-tiny-book-of-great-joys/#text
[19] https://muffinman.io/blog/the-tiny-book-of-great-joys/#plotting
[20] https://muffinman.io/blog/the-tiny-book-of-great-joys/#bookbinding
[21] https://muffinman.io/blog/the-tiny-book-of-great-joys/#the-finished-book
[22] https://muffinman.io/blog/the-tiny-book-of-great-joys/#timeline
[23] https://muffinman.io/blog/the-tiny-book-of-great-joys/#conclusion
[24] https://muffinman.io/blog/the-tiny-book-of-great-joys/#the-idea
[25] https://muffinman.io/blog/the-tiny-book-of-great-joys/#drawings
[26] https://muffinman.io/blog/the-tiny-book-of-great-joys/#midjourney
[27] https://muffinman.io/blog/the-tiny-book-of-great-joys/#prompting
[28] https://muffinman.io/blog/the-tiny-book-of-great-joys/#ai-to-plotter
[29] https://www.instagram.com/p/CNJ_ZBOHZKj/
[30] https://muffinman.io/blog/the-tiny-book-of-great-joys/#what-makes-centerline-tracing-different
[31] https://muffinman.io/blog/the-tiny-book-of-great-joys/#cleaning-up
[32] https://muffinman.io/blog/the-tiny-book-of-great-joys/#final-image-flow
[33] https://muffinman.io/blog/the-tiny-book-of-great-joys/#never-stood-a-chance
[34] https://muffinman.io/blog/the-tiny-book-of-great-joys/#text
[35] https://wiki.evilmadscientist.com/Hershey_Text
[36] https://muffinman.io/blog/the-tiny-book-of-great-joys/#plotting
[37] https://muffinman.io/blog/the-tiny-book-of-great-joys/#technical-pen-to-the-rescue
[38] https://muffinman.io/blog/the-tiny-book-of-great-joys/#smudged-drawings
[39] https://muffinman.io/blog/the-tiny-book-of-great-joys/#bookbinding
[40] https://www.youtube.com/watch?v=kA2bjvOAzGw
[41] https://www.rokolee.com/diy-miniature-hardback-book
[42] https://muffinman.io/blog/the-tiny-book-of-great-joys/#sewing-the-pages
[43] https://replicad.xyz/
[44] https://studio.replicad.xyz/workbench?from-url=https://muffinman.io/img/tiny-book/model.js
[45] https://studio.replicad.xyz/workbench?from-url=https://muffinman.io/img/tiny-book/model.js
[46] https://muffinman.io/blog/the-tiny-book-of-great-joys/#glue-arrived
[47] https://muffinman.io/blog/the-tiny-book-of-great-joys/#the-finished-book
[48] https://muffinman.io/blog/the-tiny-book-of-great-joys/#one-thing-i-would-like-to-fix
[49] https://muffinman.io/blog/the-tiny-book-of-great-joys/#timeline
[50] https://muffinman.io/blog/the-tiny-book-of-great-joys/#conclusion
[51] http://news.ycombinator.com/submitlink?u=https%3A//muffinman.io/blog/the-tiny-book-of-great-joys/&t=The%20Tiny%20Book%20%20of%20Great%20Joys
[52] http://twitter.com/share?text=The%20Tiny%20Book%20%20of%20Great%20Joys&url=https%3A//muffinman.io/blog/the-tiny-book-of-great-joys/
[53] https://bsky.app/intent/compose?text=The%20Tiny%20Book%20%20of%20Great%20Joys%20https%3A//muffinman.io/blog/the-tiny-book-of-great-joys/
[54] http://www.reddit.com/submit?url=https%3A//muffinman.io/blog/the-tiny-book-of-great-joys/&title=The%20Tiny%20Book%20%20of%20Great%20Joys
[55] https://muffinman.io/blog/letters-from-sarajevo/
[56] https://muffinman.io/blog/bunny-jumps-again/
[57] https://muffinman.io/blog/custom-giraffe-caret/
[58] https://muffinman.io/atom.xml
[59] https://muffinman.io/
[60] https://muffinman.io/
[61] https://muffinman.io/art/
[62] https://muffinman.io/blog/
[63] https://muffinman.io/projects/
[64] https://muffinman.io/about/
[65] https://muffinman.io/stats/
[67] https://muffinman.io/
[70] https://muffinman.io/art/
[71] https://muffinman.io/blog/
[72] https://muffinman.io/projects/
[73] https://muffinman.io/about/
[74] https://muffinman.io/stats/
[75] https://muffinman.io/atom.xml
[76] https://github.com/stanko/