,,,,,,

Please report all errors to bugs@pedros.works [X]

'Cannot load cms/base/kuda-navo.js'
This article summarises the Kudamono Editor's role in [PuzzleSquareJP's Advent Calendar 2023|https://puzsq.logicpuzzle.app/campaign-advent-calendar2023], starting with the [#Preparation] (mainly [#Implementing Cross Border Parity Loop]), then analysing some [#Metrics] for chosen genres, and ending with a detailed account of a new [#Variants support initiative].

PuzzleSquareJP's Advent Calendar is well-known event in the puzzle community that occurs every December, between the 1st and 25th. Every day until Christmas, puzzle lovers come together to **make** and **solve** puzzles in that day's designated genre(s).


Preparation
#=#=#=#=#=#=#

Last year's Advent Calendar (2022)
===================================

2022 was the first year the Kudamono Editor was used in PuzzleSquareJP, and that included a participation in the [Advent Calendar 2022|https://puzsq.logicpuzzle.app/campaign-advent-calendar2022]:

DAY 	GENRE
6		[Honey Circuit]
9 		[Ice dance pair]
10 		[Tiger in the Woods] (surprise)
11		[Shirokuro Pipe] (surprise)
20		[Ivy]
22		[Pearl Necklace] (surprise)
25		[Decoration Tree]
((Recap of last year's Kudamono genres in the Advent Calendar))

In total, 7 calendar genres could be played with the Kudamono Editor. However, 3 of them were "surprise" genres: ported with a few days notice (sometimes on the day before). Naturally, this gave setters too short a notice, making it harder to adapt, and missed most scheduled posts. Therefore, very few Kudamono Days were "complete".

Still, it was a promising start. It is also worth noting, that, possibly inspired by Kudamono's colourful vibes, in 2022 every genre had its own unique colourful image.

Fast forward a year and 48 new genres...


Groundwork in November/December
===============================

Many Kudamono genres did not have an example puzzle in the format needed by PuzzleSquareJP, so @chebunanntoka made them. Meanwhile, colourful genre pictures were being made by @FuwaLicaChan, who wrote a [design diary explaining the process and inspiration|https://note.com/fuwa_lica_chan/n/n5f95a5acd9f1] :::JPN. And, for the PuzzleSquareJP server, @fff created on a bi-directional translation bot.

@Wand contacted site.author and @Xsheep. Together, we decided [Kissing Polyominoes|https://puzz.link/rules.html?kissing] was a good fit for puzz.link and [Cross Border Parity Loop] for Kudamono.
This was a balanced choice, as both genres shared the same calendar day, and in the end received about the same number of puzzles.

site.author's preparation was focused on two aspects: [#Implementing Cross Border Parity Loop] and, to some extent, [#Promoting the event].


Implementing Cross Border Parity Loop
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Implementing Cross Border Parity Loop (CBPL) entailed a significant challenge, as this was the first genre in the Kudamono Editor mixing two distinct line types: cell-centered lines and edge lines. The long-term goal of adding **multi-line support** was thus accelerated by PuzzleSquareJP Advent Calendar 2023.


Correctly colouring the loop in every possibly situation also proved to be a tricky programming challenge. Here's an outline of the final algorithm:
- first, exclude some incorrectly shaped lines, and lines with an odd number of wall crossings
- break every line segment into half-segments
- aggregate all half-segments that share a common point, except if that point is at wall, into separate tracks
- store the connections between each track as a graph
- graph colouring
- match graph colour (1 or 2) to a display colour (light or black) depending on other puzzle elements (especially black and white circles)
- detect conflicts, such as:
	- incorrect colour marking (e.g. causing two dark tracks on both sides of a wall)
	- incorrect counting of track lengths by number clues


Meanwhile, @semiexp and site.author talked to ensure the Kudamono Url Encoding for CBPL would be easy to understand and not pose any hindrance to the integration with the automatic solver [CSPUZ|https://semiexp.net/games/cspuz-solver2/index.html].
Creating a solver is an interesting programming challenge in itself - you can learn more by reading @semiexp's [latest article|https://zenn.dev/semiexp/books/e559bbd5ab00a2] :::JPN.


Math Path
=-=-=-=-=

The only calendar genre left to port was Math Path. This would require:
-porting [Hidoku] beforehand, as the rules are a subset of Math Path :::DONE
-supporting free text input (for math formulas)
-supporting free text encoding in the url

The last two changes would require deeper modifications to the editor, while Cross Border Parity Loop took longer than expected... so unfortunately this had to be postponed to 2024.


Strenghtening the Variant System
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
The month of November saw the variant system improved by frequent testing by @PinkHoodie - this turned out to be important for the [#Variants support initiative].


Promoting the event
=-=-=-=-=-=-=-=-=-=

About two weeks before the event, site.author decided to add a countdown banner to the main page of site.name.
The banner would remain active during the duration of the Advent Calendar.

In addition, site.author posted some messages on English-speaking groups to alert people to the start of the event, and also during Kudamono Week.


Event results
#=#=#=#=#=#=

Across all 11 Kudamono genres and 8 Kudamono days, 262 puzzles were set in total, an average of 32 puzzles per day!

Here's a quick overview of these metrics:

Metrics overview
================

METRIC												VALUE
Kudamono Genres										11 (36% of genres)
Kudamono Days										8 (32% of days)
Puzzles set											262 (27% of puzzles)
Average number of puzzles per day					32
Most popular genre (by number of puzzles)			Crosswall
Maximum number of puzzles in a gerne				51
Most popular genre (by number of authors)			Soulmates
Maximum number of authors in a genre				28


[Crosswall], with 51 puzzles, was the most set genre, closely followed by [Soulmates], which was the genre set by the largest number of authors (28).
This was expected, as both genres have been very popular throughout 2023.

A detailed breakdown of each genre ensues:

DAY	GENRES PER DAY		GENRE						Puzzsq ID			PUZZLES		AUTHORS
4	1					[Soulmates]					[610|PZ=610]		46			28
7	1					[Crosswall]					[626|PZ=626]		51			21
10	2					[Cross Border Parity Loop]	[728|PZ=728]		24			9
16	2					[Bouba & Kiki Loop]			[653|PZ=653]		15			8
16	2					[Tring-tring]				[713|PZ=713]		15			9
17	2					[Tricklayer]				[631|PZ=631]		15			7
17	2					[Clones]					[198|PZ=198]		22			14
18	1					[Alcazar]					[704|PZ=704]		23			11
19	1					[Hasu no Mura]				[675|PZ=675]		21			14
20	2					[RB Loop]					[642|PZ=642]		24			11
20	2					[RGB Loop]					[679|PZ=679]		7			6
((Kudamono genres in PuzzleSquareJP's Advent Calendar 2023))

PZ=:=https://puzsq.logicpuzzle.app/?kind=

The genre that received fewer puzzles was [RGB Loop], probably because it was a late addition to the calendar (it was added to [RB Loop] day).

Other genres that appear less popular (such as [Tricklayer] or [Bouba & Kiki Loop]) generally fell on shared days; those days, as a whole, did not stray far from the average.


Counting Method
=-=-=-=-=-=-=-=-=-

All puzzles made between December 1st and December 25th were counted, even if made outside the official day.
site.author's puzzles were included.

Puzzle count includes puzzles:
- 240 directly made with the Kudamono Editor, in the 11 genres;
- 12 puzzle transcribed to the Kudamono Editor immdiately after support was added;
- 10 puzzles made in variants that are not yet supported, as of today.

The count excludes:
- the example puzzles by @chebunanntoka;
- some [Square Jam] variant puzzles made with the Kudamono Editor;
- a few "satellite" puzzles shared across social media during the Advent Calendar, such as this cute [Bouba & Kiki puzzle|https://pedros.works/paper-puzzle-player?W=15x4x5&L=x0x1x1x1x1x1x2h1x1x4x1h1h1h1x1x3x8x1x4h1x3x7x3x2x4x6x1h2x3x3x1x1h1x1x1x1x1x1x1x1x1x1x1x1x1x1x1x1x2x1t1x2t2t2x3x2x4t1t1x2t2t3x1t5x1x3x1x2x1x1x1&G=bouba-kiki-loop&A=hutthutthutt&D=2023-12-18], and [other puzzles|https://hutthutthuttspuzzledump.blogspot.com/search?updated-max=2023-12-21T17:00:00-08:00&max-results=7] shared at @hutthutthutt's blog.



Most liked puzzles
==================

As of 26-12-2023, the most liked advent calendar puzzle made with the Kudamono editor was [this Soulmates puzzle|https://puzsq.logicpuzzle.app/puzzle/116185] by @Yuyuki. She also crafted the [most popular puzzle|https://puzsq.logicpuzzle.app/puzzle/116009] in the [entire event|https://puzsq.logicpuzzle.app/?sortType=fav&sortOrder=DESC&hashtag=205]. Congratulations!

Second and third place went respectively to @Hizuriya, with this [Soulmates puzzle|https://puzsq.logicpuzzle.app/puzzle/116190], and to @calcogen, also with a [Soulmates puzzle|https://puzsq.logicpuzzle.app/puzzle/115456]. Well done!

If we would break down the analysis further by genre, we'd notice @Yuyuki did very well there too (per-genre links in the table below, for those that are curious).

GENRE						SORTED LIST
[Soulmates]					[610|PZF=610]
[Crosswall]					[626|PZF=626]
[Cross Border Parity Loop]	[728|PZF=728]
[Bouba & Kiki Loop]			[653|PZF=653]
[Tring-tring]				[713|PZF=713]
[Tricklayer]				[631|PZF=631]
[Clones]					[198|PZF=198]
[Alcazar]					[704|PZF=704]
[Hasu no Mura]				[675|PZF=675]
[RB Loop]					[642|PZF=642]
[RGB Loop]					[679|PZF=679]
((Kudamono genres in PuzzleSquareJP's Advent Calendar 2023, sorted by popularity))

PZF=:=https://puzsq.logicpuzzle.app/?sortType=fav&sortOrder=DESC&hashtag=205&kind=



Variants support initiative
============================

With fewer genres available to port, site.author still wished to provide something new to this year's event.

Encouraged by November's developments in Kudamono's Variant System, an effort was made to add as many emerging variants as possible, with the shortest possible delay.


Variants overview
=-=-=-=-=-=-=-=-=

All 11 Kudamono genres received at least one variant.
In total, 68 variant puzzles were made, so average, roughly 1 in 4 puzzles was a variant.


GENRE							PUZZLES		WITH VARIANT	PERCENT
Soulmates						46			2				04%
Crosswall						51			18				35%
Cross Border Parity Loop		24			9				38%
Bouba & Kiki Loop				15			4				27%
Tring-tring 					15			5				33%
Tricklayer						15			5				33%
Clones							22			8				37%
Alcazar							23			5				22%
Hasu no Mura					21			3				14%
RB Loop							24			8				33%
RGB Loop						7			1				14%
((Breakdown of variants used per genre))


The genre with the highest number of registered variants was by far [Crosswall].

In addition, these 68 variant puzzles represent 37.5% of all 181 variant puzzles made during the event. By comparison, only 28% of all puzzles were made with the Kudamono Editor.
This suggests that the growing variant capabilities of the Kudamono Editor paired with this Variant Support Initiative did stimulate variant-making!

Variant-making was concentrated in 5 authors, the most prolific being @PinkHoodie and @Solyu.

AUTHORS					GENRES		DISTINCT VARIANTS
@PinkHoodie				11			27
@Solyu					8			17
@Anurag					2			3
@random8				1			1
@@凍み豆腐程度の能力@@	1			1

Fun fact: @PinkHoodie made at least 1 classic and 1 variant for every genre in PuzzleSquareJP's Advent Calendar 2023

The following sections list all variants used in each genre exhaustively.

Soulmates
=-=-=-=-=-

Only 2 Soulmates puzzles used variant rules, but a variant by @Solyu could actually be divided into 3 atomic variant elements, that were ported quickly after the puzzle was published.

VARIANT 								AUTHOR				STATUS
some-mark								@Solyu				new
adjacent-different						@Solyu				new
adjacent-numbers-non-consecutive 		@Solyu				new
hex										@PinkHoodie			corrected after the event

Embarassingly, the ´´hex´´ variant didn't work during the event, but it works now.


Crosswall
=-=-=-=-=-

@Solyu released a collection of puzzles named 【Crosswall Variants Paradise】, making great use of the existing global variants! In addition, the new variant ´´match-parity´´ by @PinkHoodie was ported.

VARIANT 								AUTHOR					STATUS
myopia									@Solyu,@PinkHoodie		existing
directions								@Solyu,@PinkHoodie		existing
territory-unique						@Solyu					existing
full									@Solyu, @PinkHoodie		existing
vertigo									@Solyu, @PinkHoodie		existing
unequal-lengths							@Solyu					existing
no-shortest								@Solyu					existing
short									@Solyu					existing
no-short								@PinkHoodie				existing
snake									@PinkHoodie				existing
match-parity							@PinkHoodie				new

Interesting variant combos included: ´´snake´´ + ´´vertigo´´ and ´´vertigo´´ + ´´directions´´, by @PinkHoodie


Cross Border Parity Loop
=-=-=-=-=-=-=-=-=-=-=-=-

No new variants were added to this genre, but several had to be were adapted to ignore edges and only focus on lines.

VARIANT 								AUTHOR					STATUS
RB Parity Loop							@Solyu					[not ported|https://puzsq.logicpuzzle.app/puzzle/115887]
short									@PinkHoodie				existing
crossing								@PinkHoodie				existing
full									@PinkHoodie				existing
snake									@PinkHoodie				existing
required-blacks							@PinkHoodie				existing
Moon or Sun (-ish)						@PinkHoodie				[not ported|https://puzsq.logicpuzzle.app/puzzle/116471]
shaded snake							@PinkHoodie				[not ported|https://puzsq.logicpuzzle.app/puzzle/116701]




Bouba and Kiki Loop
=-=-=-=-=-=-=-=-=-=-=-=-

The ´´switch´´ variant by @Solyu was very impressive, and it is something that site.author wishes to port in the future.

VARIANT 								AUTHOR					STATUS
switch									@Solyu					[not ported|https://puzsq.logicpuzzle.app/puzzle/116032]
directions								@PinkHoodie				existing
no-short								@PinkHoodie				existing
vertigo									@PinkHoodie				existing


Tring-tring
=-=-=-=-=-=-=-=-=-=-=-=-

Likewise, the ´´Bouba & Kiki + Tring-Tring´´ mashup by @random8 is worth porting, time permitting.

VARIANT 								AUTHOR					STATUS
Bouba and Kiki (hexagons and triangles)	@random8				[not ported|https://puzsq.logicpuzzle.app/puzzle/117128]
unequal-adjacent-loops					@PinkHoodie				existing
unequal-adjacent-loop-vertices			@PinkHoodie				existing


Tricklayer
=-=-=-=-=-

Tricklayer was the second genre where two different authors proposed new variants, and both were ported within a short time frame.

VARIANT 								AUTHOR							STATUS
chopped									@AnuragSahay, @PinkHoodie		existing
area-no-multiple-3						@PinkHoodie						new
territory-adjacent-area-consecutive		@AnuragSahay					new

The downside of this accelerated porting activity was a couple bugs making their way to the base genre and remaining there unnoticed for two days...

Clones
=-=-=-=-=-
VARIANT 								AUTHOR							STATUS
Evolution Line							@Solyu							[not ported|https://puzsq.logicpuzzle.app/puzzle/116172]
tile-removable-1						@PinkHoodie						existing (in base genre)
divide-3								@PinkHoodie						new
hex										site.author						adapted

There was a strong focus on adapting the hex variant to work well with line edges.
Again here the fast porting activity led to a visual bug on an unrelated genre ([Akari RBG] ´´hex´´)...


Alcazar
=-=-=-=-=-

All Alcazar variants were fully supported, including the new ´´meandering´´ variant.

VARIANT 								AUTHOR							STATUS
meandering								@Solyu							new
vertigo									@PinkHoodie						existing
directions								@PinkHoodie						existing
myopia									@PinkHoodie						existing
hyperopia								@PinkHoodie						existing


Hasu no Mura
=-=-=-=-=-

This genre received two new variants, both inspired by existing genres: @context by @Solyu and @Aqre by @PinkHoodie.
Both were fully supported within a short time frame.

VARIANT 								AUTHOR							STATUS
context									@Solyu, @PinkHoodie				new
aqre									@PinkHoodie						new

Interestingly, a puzzle was quickly made by @PinkHoodie combining both variants!


RB Loop
=-=-=-=-=-

In RB loop, the proliferation of new variants quickly overwhelmed site.author, so only 2 out of 5 were added.

VARIANT 								AUTHOR							STATUS
RBPループ								@@凍み豆腐程度の能力@@, @Solyu 		[not ported|https://puzsq.logicpuzzle.app/puzzle/116708]
switch loop circuit						@PinkHoodie						[not ported|https://puzsq.logicpuzzle.app/puzzle/115663]
nanameguri								@PinkHoodie						[not ported|https://puzsq.logicpuzzle.app/puzzle/115660]
numbered-tiles							@PinkHoodie						existing
directions								@PinkHoodie						existing
no-shade								@PinkHoodie, @Anurag			new
hasu-no-mura							@PinkHoodie						new

| :info: to make the ´´hasu-no-mura´´ variant work better with RB Loop, it is avisable to drop the ´´full´´ constraint, using a minus sign, like so: ´´&V=hasu-no-mura,full´´-optional


RGB Loop
=-=-=-=-=-

In RGB Loop, a single, already existing variant was used.

VARIANT 								AUTHOR							STATUS
no-short								@PinkHoodie						existing



Conclusion
#=#=#=#=#=

This year, PuzzleSquareJP's Advent Calendar featured 11 scheduled Kudamono genres across 8 days, including a full //Kudamono Week// - underscoring the growing partnership between PuzzleSquareJP and the Kudamono Editor.

The +30 puzzles made every day with the Kudamono Editor reflect the trust this software system has earned from all setters and solvers, as well as its flexibility for accomodating many of the most creative genres and variants!

To all participants in this year's event, thank you!
Looking forward to next year!



## Changes
**2023-12-27** Article published
**2023-12-28** Feedback by @PinkHoodie incorporated
**2024-01-01** Correction: ´´full-optional´´ is the name of the variant that drops the requirement for all tiles to be visited (@PinkHoodie)