Posts in category “Miscellaneous”

A crash-course in printing stickers

I wanted some stickers. That seems simple.
No it isn't.

First part, create or find the artwork.
I tried the former by commissioning a friend. Sadly, it took quite some time. Not going to blame them, life happens, but well, I still kinda want the stickers
I thought about using GenAI, but, nah, not fun. So. I took the official in-game stickers from Cygames' Umamusume: Pretty Derby, from the unofficial wiki [umamusu.wiki]. Fine.

Problem: The PNGs ain't exactly clean. The local print shop is not exactly happy with having to plot 7 designs over 4 diffferent size classes over A3, while also cleaning up the kisscut margins. They told me to go clean them up and prepare the print + cut file myself.
Back in highschool, I used to operate CorelDraw for layouting the weekly student magazine print.
Problems:

  1. I don't have a current CorelDraw license
  2. I don't remember how to operate CorelDraw anymore
  3. I am on linux.

I asked several LLMs. They told me the best option is Inkscape. Fine. Let's install Inkscape. In AUR, we can just grab inkscape-bin
Problem:

Mr. Krabs spinning

IDK how to use Inkscape either. Source: KYM

So, I just asked ChatGPT how to get this done quickly. Recipe I got is basically, as follows:

  1. Create the canvas (in my case, A3 was required.
  2. Import desired image. Drag and drop works.
  3. Select desired image, then Path → Trace Bitmap.
Trace bitmap menu

Trace Bitmap. These are the settings I used. What's important is to ensure all the bounding lines are black. Internal shapes may remain white

  1. Click apply.
Image after applying bitmap trace

Image after applying bitmap trace. Looks splotchy

  1. Without changing your selection, go to Path -> Break Apart
Path -> Break Apart

Path -> Break Apart

  1. You will get this creature from the backrooms.
Broken-apart bitmap trace

Broken-apart bitmap trace. Nice Nature got abstracted.

  1. Next, union the blob with Ctrl + Shift + U or Path -> Union
Union controls

Union controls

You should get this pretty silhouette now.

Silhouette after union

Silhouette after union

  1. Outset the silhouette. I like to do it four times
Outset image

Path -> Outset

You should now receive an amorphous blob, as follows

Post-outset

Post-outset shape

  1. Still selecting the outsetted image, set transparent (the red x) with left mouse, and outline magenta with shift + left mouse
Color settings

Color settings

Outlined properly!

Outlined properly!

The magenta line is now the vector cutting path.

A thin stroke such as 0.25 mm is sufficient. The stroke thickness itself does not determine where the cutter cuts; the vector path does.

  1. Group the artwork and cut path

Using the regular Select tool, drag a selection box around both:

  • the original artwork; and
  • its magenta cutting path.

Press:

Ctrl + G

to group them.

The artwork and cutting path can now be moved and scaled together without losing alignment.

  1. Create the required sticker sizes

In this case, the desired final widths were:

  • 50 mm
  • 30 mm
  • 20 mm
  • 15 mm

These dimensions refer to the finished sticker width including the cut contour.

With the artwork and cutting path grouped, enable the aspect-ratio lock in the top toolbar.

Set the group width to:

50 mm

Do not manually change the height. Inkscape will scale it proportionally.

Then create the other sizes:

Ctrl + D → set width to 30 mm

Ctrl + D → set width to 20 mm

Ctrl + D → set width to 15 mm

Only trace each unique artwork once. The smaller variants should be made by duplicating and scaling the completed group.

  1. Arrange the stickers on the sheet

Arrange all required stickers on the A3 canvas.

For this print, approximately:

  • 3 mm between neighbouring cut contours
  • 15 mm from the outermost cut contour to the edge of the A3 page

worked comfortably.

Inkscape's Align and Distribute / Grid controls can be used to arrange multiple objects quickly instead of positioning every sticker manually.

The exact packing pattern does not matter as long as:

  • cut paths do not overlap;
  • sufficient spacing remains between them; and
  • everything remains inside the printer's safe area.

Guides pulled from the rulers may be used to mark margins. These guides are not printed or exported.

  1. Separate the artwork and cutting paths into layers

Once the final layout is complete, avoid moving the stickers again.

Select all sticker groups:

Ctrl + A

Ungroup them:

Ctrl + Shift + G

Click one magenta cutting path, then use:

Edit → Select Same → Stroke Color

This should select every magenta cut path on the page.

Create a new layer named:

CutContour

Move the selected paths into that layer.

The remaining PNG artwork can then be placed into another layer named:

Artwork

The document should now conceptually look like:

CutContour
    all vector cutting paths

Artwork
    all raster artwork

You should be able to hide either layer without anything changing position.

  1. Save the master file

Save the complete editable document as an SVG before exporting anything:

PRINT_MASTER.svg

The master file may be very large if the source PNGs are embedded. This is normal.

Keep this file yourself; it does not necessarily need to be given to the printer.

  1. Export the print artwork

Hide the CutContour layer so only the artwork remains visible.

Export the entire A3 page as PNG.

For A3 at 300 DPI, the resulting image should be:

3508 × 4961 px

Example:

PRINT_PROJECT_300DPI.png

Make sure the export area is Page, not Drawing or Selection, otherwise the outer margins will disappear.

  1. Export the cutting paths

Hide the Artwork layer and show only CutContour.

The cut file must retain the same 297 × 420 mm A3 page and exactly the same object positions as the print file.

Export the cut paths as vector formats such as:

CUT_PROJECT.svg

and/or:

CUT_PROJECT.pdf

If exporting the complete SVG causes Inkscape to include the hidden embedded artwork and creates an enormous file, select all cut paths and use Export Selected Only.

However, make sure the document/page itself remains A3. Do not crop or resize the page to the selection or drawing.

The resulting cut SVG should still report approximately:

width="297mm"
height="420mm"

The cut file should contain only the vector paths, while preserving their positions on the original A3 page.

That is the "standard" way. The non-standard way is just using shortcuts the way it was intended.

  1. Import PNG and set its physical size.
  2. Select PNG → Path → Trace Bitmap.
  3. Your settings should stay from the previous image. Adjust threshold only if necessary → Apply.
  4. Close the tracing panel. The new black vector should already be selected.
  5. Ctrl+Shift+K → Break Apart.
  6. Ctrl++ → Union. Now it's a solid silhouette.
  7. Ctrl+) a few times until the border visually matches the ~2 mm contour you just made.
  8. Shift-click magenta → gives it magenta stroke.
  9. Click the X swatch → removes fill.
  10. Move that selected contour to CutContour.

Results:

Tumbler

Tumbler

Sticker Sheet

Sticker Sheet

Beaten by a 17 year-old game, a lesson in RTFM.

Chocolatier: Decadence by Design is a game released in 2009. It was a fond memory for me, along with the boom of resource management/strategy games of the era like the Tradewinds series.

Once in a while, I get bored and decided to play the game, which surprisingly, is still happy to run on Windows 11 (as of Jul '26), provided you do not ask it to render at full screen. It gets weird then.

The game's story is you, the player, an outsider, trusted to helm the fledgling Baumeister Confections, formerly a great and global confectionary conglomerate spread across the world, as the CEO searches the world for her husband, lost after the Second World War.

Anyways, at a certain point of the game, you are asked by the Board Members of the company to "prove yourself capable" by producing certain variants of confections.

A game menu displaying a quest, among the uncompleted tasks being to "Have 100 cases of Blended Varietal Cacao Pumpkin Truffles in your inventory"

Notice the still-incomplete quest: Have 100 cases of Blended Varietal Cacao Pumpkin Truffles in your inventory
n.b. ignore the custom confection name, i did not name creations properly as a ten year old, i will not do so now.

Well, let us see what the game's recipe calls for this "Blended Varietal Cacao Pumpkin Truffles"

A menu of the game for "Blended Varietal Cacao Dark Truffles"

Hmm, that is weird. I have never seen Honduran Cacao before. Well, let's go to Honduras and get Honduran Cacao, I suppose.

Map from the game Chocolatier: Decadence By Design

Where's Honduras?

Well, I suppose Havana is the closest city in the map to Honduras, let's look there.

In game screenshot of Chocolatier 3, Havana Market

That's weird. Havana does not sell Honduran Cacao. Let's search online.

Screenshot from The Chocolatier Series Wiki

Taken from The Chocolatier Series Wiki

... that is not Havana. Where is Xunantunich?

Screenshot from the Chocolatier Series Wiki

Spoiler warning for a 17 year old game Taken from The Chocolatier Series Wiki

Wait, then how do I progress in this game? Surely they won't ask us to get an ingredient only attainable when we get to the final port of the game?

he Port Xunantunich doesn't become available until the game is almost completed and you own 5 shops and have endorsement from all the board members. The game can be completed without using or buying Honduran Cacao! No quest requires any recipes that use Honduran Cacao...if you believe it's required ...you're probably looking at the recipe for Blended Varietal Dark Truffles It is the Blended Varietal Pumpkin Truffles that are required which have vertical brown and orange stripes. They are the first truffles on the left of the bottom row. There are recipes that use Honduran Cacao; however they are not required to complete the game.

Taken from Casual Game Guides

I am sorry what

Screenshot of the game showing the recipe Blended Varietal Cacao Pumpkin Truffles

Oh.

If you folks missed it:

PS C:\Users\Francis Wibisono> python
Python 3.13.14 (tags/v3.13.14:fd17997, Jun 10 2026, 13:03:48) [MSC v.1944 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> "Blended Varietal Dark Truffles"=="Blended Varietal Pumpkin Truffles"
False
Fine Motion from Uma Musume is sometimes not very smart.

Wit 8/1200. Can't even break from the gate properly. Taken from Reddit

Maybe don't play games with monoline causal logotype at three in the morning. Or actually read the quests, I suppose.

Also don't use Monoline fonts in headings. But that is perhaps too meaningful for a silly blog post.