You are browsing as a guest. Sign up (or log in) to start making projects!

aesincs

@aesincs

Joined June 13th, 2026

  • 21Devlogs
  • 3Projects
  • 1Ships
  • 15Votes
Performance is design.
Open comments for this post

23m 49s logged

Fixed a particularly nasty bug where dragging the blank over the drag handle would send it to the first (top left) square. Even though the drag handle isn’t a tile, it was considered part of the board as it overlayed the tiles. The function responsible for identifying the tile to swap correctly returned undefined when dragging over the handle, but JavaScript’s type coercion converted this to 0, resulting in the blank moving to the 0th (top left) position. The fix is rejecting the swap when the identification function returns undefined.

0
0
6
Open comments for this post

28m 27s logged

Replaced the pinch and scroll controls for resizing with a drag handle. It’s more conventional and precise.

0
0
4
Open comments for this post

1h 3m 20s logged

Wrote resizing between an 8-puzzle and a 35-puzzle. Resizing is wired to scrolling and pinch-to-zoom. The tiles attempt to remain consistent in size but shrink to avoid overflowing off the page. The positioning of the word mark and indicators updates correspondingly. More colors were added for increased groups at larger sizes. The solvability check now works for even and odd sizes. Records are stored per-size.

0
0
4
Open comments for this post

16m 58s logged

Wrote walk support, which automatically slides tiles to support swapping from any tile rather than just those adjacent to the blank.

0
0
4
Open comments for this post

34m 51s logged

Rewrote the rendering system for performance. Previously, tiles were arranged in a grid and moved synchronously. Now, tiles are positioned absolutely and updated within an animation frame loop.

0
0
3
Open comments for this post

43m 56s logged

Wrote records for the shortest time and lowest amount of moves taken to solve. Records are positioned below the tiles and persist across sessions. When a new record is achieved, the corresponding indicator flashes.

0
0
4
Ship Changes requested

A friend and I recently became interested the 15-puzzle. It's simple to solve, but there's surprising depth to solving it efficiently and quickly.

Unfortunately, existing apps for the 15-puzzle are slow and filled with advertisements. Taxicab on the other hand is a 15-puzzle for speedrunners. In addition to a stopwatch and color-coded design, it uses hovering and dragging as input methods as opposed to clicking or tapping, which is significantly faster.

This first ship is the base experience needed for speedrunners. Future versions will incorporate history, statistics, multiplayer, and more.

  • 7 devlogs
  • 2h
  • 9.65x multiplier
  • 22 Stardust
Try project → See source code →
Open comments for this post

15m 31s logged

Wired the shuffle function to the screen when solved, so it’s easy to continue. Also wrote the watch and move counter.

0
0
3
Open comments for this post

24m logged

Wrote the swap function and wired it to the pointer. Hovering over a tile adjacent to the blank swaps it with the blank.

0
0
1
Open comments for this post

16m logged

Wrote the wordmark for personality. The 15-puzzle’s called “Taxicab” since:

  1. Algorithms used to solve the 15-puzzle optimally involve the Taxicab (or Manhattan) distance.
  2. The 15-puzzle was invented by Noyes Palmer Chapman, who served as the mailman for the town of Canastota in New York.
0
0
1
Open comments for this post

18m logged

Wrote the shuffle(). It’s random and checked for solvability using inversions. The number of inversions must be even since this is a 15-puzzle as opposed to a 8-puzzle or 24-puzzle.

0
0
2
Open comments for this post

26m logged

Wrote the favicon.svg and colored and numbered tiles. The favicon is a taxicab symbol made up of squares and matches the tiles’ colors.

0
0
2

Followers

Loading…