Chris Pollett > Students > Hammoudeh

    Print View



    [Initial Project Proposal]

    [Thesis Deliverables]

    [GitHub Repository]

    [Solver Documentation]

CS297 Proposal

A Square Jigsaw Puzzle Problem Solver

Zayd Hammoudeh (

Advisor: Dr. Chris Pollett


Solving a jigsaw puzzle entails arranging a fixed set of pieces such that they reconstruct an original source image. With a traditional jigsaw puzzle, there are two primary factors that significantly reduce the difficulty of the problem, namely different piece shapes which mechanically limit the number of possible permutations as well as knowledge of the original source image, which allows the solver to determine with certainty whether two pieces are adjacent.

This project will develop a tool that will attempt to reconstruct a jigsaw puzzle of uniform, square pieces for an unknown image. It will avoid of the simplification of the problem done in existing research including: not allowing piece rotation, assuming knowledge of a low density version of the source image, and fixing the position of a subset of the puzzle pieces in their correct locations.


Week 1: Feb. 1-7Project kickoff meeting with Dr. Pollett. Begin work on the puzzle parser.
Week 2: Feb. 8-14Deliverable #1: Jigsaw Puzzle Parser Complete
Week 3: Feb. 15-21Begin literature review of existing approaches to solve the jigsaw puzzle problem.
Week 4: Feb. 22-28Continue working on presentation of jigsaw puzzle problem literature review.
Week 5: Feb. 29 - Mar. 6Deliverable #2: Complete presentation of existing literature
Week 6: Mar. 7-13Begin work on a bottom-up jigsaw puzzle solver.
Week 7: Mar. 14-20Continue work on the jigsaw puzzle solver. Present initial work.
Week 8: Mar. 21-27Continue work on the solver. Implement a testing architecture to ensure the correctness of the implementation.
Week 9: Mar. 28 - Apr. 3SJSU Spring Break. Deliverable #3: Complete first pass of a jigsaw puzzle solver.
Week 10: Apr. 4-10Additional literature review on jigsaw puzzle solution metrics.
Week 11: Apr. 11-17Begin implementing three metrics for comparing jigsaw puzzle results.
Week 12: Apr. 18-24Deliverable #4: Complete jigsaw puzzle solution comparison across multiple images (with different characteristics) using the implemented metrics.
Week 13: Apr. 25 - May 1Finalize all work on the jigsaw puzzle solver in preparation for writing the CS297 final report.
Week 14: May 2-8Begin work on CS297 final report.
Week 15: May 9-15Deliverable 5: Complete CS297 Final Report


The full project will be done when CS298 is completed. The following will be done by the end of CS297:

  1. Jigsaw Puzzle Generator: Given a source image, the generator will:
    1. Import a bitmap image
    2. Parse the image into a specified number of equal size tiles (Note: some of the picture may be cropped during this process)
    3. Perform a Fisher-Yates shuffle of the pieces
    4. Optionally rotate each tile randomly
    5. Display the shuffled image (with optional borders for clarity)

  2. Literature Review Presentation: Create a presentation describing different, existing techniques that are used to solve the jigsaw puzzle problem.

  3. Basic Solver Framework: Develop a basic framework that will perform a bottom-up solution to the jigsaw problem. It will utilize the techniques described in the literature review.

  4. Multiple Comparative Metrics Results Presentation: No one metric will sufficiently quantify the quality of a jigsaw puzzle solution. In this deliverable, I will implement at least three solution comparison metrics and compare the results of these metrics across images with different characteristics (e.g. high texture, images with duplicate pieces, etc.)

  5. CS297 Final Report: This is the culminating document for this semester's activities. It will include:
    1. An overview of the project problem
    2. Summary of previous work and solutions of the problem
    3. Discuss the strategies I plan to use to solve the problem
    4. Discuss the solution quality and metrics that will be used to compare solved puzzles.
    5. Provide a description of the two tools implemented namely the image parser and the solver.


D. Sholomon, O. David, and N. S. Netanyahu, "A genetic algorithm based solver for very large jigsaw puzzles," in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2013.