2025-07-31 08:05:19 +08:00
2025-07-30 11:24:58 +08:00
2025-07-30 11:24:58 +08:00
2025-07-30 11:24:58 +08:00
2025-07-31 08:05:19 +08:00
2025-07-17 15:56:04 +08:00
2025-07-30 11:24:58 +08:00
2025-07-17 15:56:04 +08:00
2025-07-30 11:24:58 +08:00
2025-07-30 11:24:58 +08:00

Wafer Map Pro

Wafer Map Pro is a modern, web-based tool designed for the visualization, interactive editing, and comparison of semiconductor wafer maps. Built with a Python Flask backend and a dynamic HTML5 Canvas frontend, it provides a fluid and intuitive user experience for engineers and technicians working with wafer data.


Features

🗺️ Wafer Map Editor

  • Interactive Canvas Renderer: The wafer map is rendered on an HTML5 Canvas, allowing for smooth and efficient handling of large datasets.
  • Dynamic Pan & Zoom: Effortlessly navigate the wafer map by clicking and dragging to pan, and using the mouse wheel to zoom in on areas of interest.
  • Advanced Selection Tools:
    • Single Die: Click to select a single die.
    • Multi-Select: Hold Ctrl while clicking to select multiple, non-contiguous dies.
    • Region/Box Select: Hold Shift and drag the mouse to select a rectangular area of dies.
  • Bin Code Editing: Instantly change the bin code (Good, NG, Dummy, Ignore) of any selected die or region.
  • Map Transformation:
    • Rotate: Rotate the entire wafer map 90 degrees clockwise with a single click.
    • Inset: Automatically change the bin code of the outer N layers of dies.
  • History Control:
    • Undo/Redo: Step backward and forward through your edits.
    • Reset: Revert the map to its original state.
  • Real-Time Data Analysis: A persistent display shows the live count of each bin code, updating automatically after every edit.
  • File Handling:
    • Upload wafer maps from simple .txt files.
    • Download the edited wafer map, preserving its structure.

🔬 Wafer Map Comparator

  • Multi-Map Upload: Upload two or more wafer maps for side-by-side comparison.
  • Reference Point Alignment: Set a reference die on each map to ensure accurate alignment.
  • Visual Comparison: The tool generates a color-coded result map highlighting matches, mismatches, and areas where data is missing or partial.
  • Detailed Inspection: Hover over any die on the result map to see a detailed tooltip showing the bin status from each of the source maps.
  • Independent Map Rotation: Rotate individual maps within the comparison view to align them correctly before running the comparison.

🛠️ Tech Stack

  • Backend:
    • Python 3
    • Flask: A lightweight web framework for serving the application and handling API requests.
    • NumPy: Used for efficient numerical operations and array manipulations (e.g., map rotation, inset, and comparison logic).
  • Frontend:
    • HTML5
    • CSS3: For modern styling, animations, and the dark theme.
    • JavaScript (Vanilla): Powers all the client-side interactivity, including the canvas rendering engine, event handling, and API communication.

🚀 Getting Started

Follow these instructions to get a copy of the project up and running on your local machine.

Prerequisites

  • Python 3.6 or higher
  • pip (Python package installer)

Installation

  1. Clone the repository to your local machine:

    git clone https://github.com/your-username/wafer-map-pro.git
    cd wafer-map-pro
    
  2. Create and activate a virtual environment (recommended):

    # For Windows
    python -m venv venv
    .\venv\Scripts\activate
    
    # For macOS/Linux
    python3 -m venv venv
    source venv/bin/activate
    
  3. Install the required Python packages:

    pip install -r requirements.txt
    
  4. Run the Flask application:

    python app.py
    
  5. Open your web browser and navigate to the following addresses:


📖 How to Use

Wafer Map Editor

  1. Upload File: Drag and drop a .txt file containing your wafer map data, or click to select a file.
  2. Define Bin Codes: Assign a bin type (Good, NG, Dummy, or Ignore) to each unique character found in your file.
  3. Generate Map: Click "Generate Map" to view the wafer.
  4. Interact and Edit: Use the controls to Pan, Zoom, Select, Edit, Rotate, and Inset the map.
  5. Download: Click "Download .txt" to save your changes.

Wafer Map Comparator

  1. Navigate: Go to the "Compare" page.
  2. Upload Files: Select two or more .txt wafer map files.
  3. Define Bin Codes: Assign bin types for all unique characters across all files.
  4. Set Reference Points: For each map, click on a die to set it as the alignment reference. You can rotate individual maps if needed.
  5. Run Comparison: Click "Run Comparison" to see the result map. Hover over dies for detailed information.

Expected .txt File Format

The application expects a simple text file where each character represents a die. Spacing is used to separate dies. The parser is designed to handle non-uniform rows and columns gracefully.

Example:

  1111
 112211
11222211
11222211
 112211
  1111
Description
No description provided
Readme 75 KiB
Languages
JavaScript 47.5%
Python 28.6%
HTML 12.8%
CSS 11.1%