FIRST_UPLOAD
This commit is contained in:
118
README.md
Normal file
118
README.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# Wafer Map Pro
|
||||
|
||||
Wafer Map Pro is a modern, web-based tool designed for the visualization and interactive editing 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
|
||||
|
||||
- **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 the entire wafer map 90 degrees clockwise with a single click.
|
||||
- **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.
|
||||
- **Modern UI/UX**:
|
||||
- A sleek dark mode theme reduces eye strain.
|
||||
- A professional sidebar layout keeps controls organized and the map view unobstructed.
|
||||
- Smooth animations and transitions provide a polished user experience.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ 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).
|
||||
- **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:**
|
||||
```bash
|
||||
git clone https://github.com/your-username/wafer-map-pro.git
|
||||
cd wafer-map-pro
|
||||
```
|
||||
|
||||
2. **Create and activate a virtual environment (recommended):**
|
||||
```bash
|
||||
# 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:**
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
4. **Run the Flask application:**
|
||||
```bash
|
||||
python app.py
|
||||
```
|
||||
|
||||
5. **Open your web browser** and navigate to the following address:
|
||||
[http://127.0.0.1:5000](http://127.0.0.1:5000)
|
||||
|
||||
---
|
||||
|
||||
## 📖 How to Use
|
||||
|
||||
1. **Step 1: Upload File**
|
||||
- Click the file input area or drag and drop a `.txt` file containing your wafer map data.
|
||||
- Click "Upload & Analyze".
|
||||
|
||||
2. **Step 2: Define Bin Codes**
|
||||
- The application will automatically detect all unique characters in your file.
|
||||
- For each character, use the dropdown menu to assign its corresponding bin type (`Good`, `NG`, `Dummy`, or `Ignore`).
|
||||
- Click "Generate Map".
|
||||
|
||||
3. **Step 3: Interact and Edit**
|
||||
- Your wafer map will be displayed in the main view.
|
||||
- Use the controls to **Pan**, **Zoom**, **Select**, **Edit**, and **Rotate** the map.
|
||||
- The bin code counts will update in real-time.
|
||||
- The hint `Pro-tip: Hold Shift and drag to select a region.` is provided for quick reference.
|
||||
|
||||
4. **Step 4: Download**
|
||||
- Once you have finished editing, click the "Download .txt" button to save your work. A new text file with the updated map will be downloaded.
|
||||
|
||||
---
|
||||
|
||||
### 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
|
||||
```
|
Reference in New Issue
Block a user