KinderSort is an offline desktop app for kindergarten teachers. It scans event photos, matches student faces, and copies each photo into the correct student folder automatically — no internet connection, no coding knowledge required.
| Feature | Detail |
|---|---|
| Fully offline | No cloud upload, no internet required |
| CPU-only | Works on any Windows PC without a GPU |
| Simple GUI | Point-and-click, no terminal needed |
| Group photo support | One photo copied to all matched students |
| Safe operation | Files are copied, never moved or deleted |
| Audit trail | Detailed log written to kindersort_log.txt |
- Teachers who need to organise large batches of student photos quickly
- Schools that require local/offline processing for privacy
- Download
KinderSort.exefrom the Releases page - Double-click
KinderSort.exe— no installation needed - Select the three folders (Reference / Events / Output)
- Click Start Sorting
- Review the summary and open the Output folder
Full illustrated teacher guide: guidebook.md
| Step | Screenshot |
|---|---|
| 1. App launch | ![]() |
| 2. Reference folder selected | ![]() |
| 3. Events folder selected | ![]() |
| 4. All folders ready | ![]() |
| 5. Sorting in progress | ![]() |
| 6. Sorting complete | ![]() |
| 7. Timer display during sorting | ![]() |
You choose three folders inside the app:
-
Reference Photos — one clear front-facing photo per student, file name = student name
reference/ Ali.jpg Siti.png Kumar.jpeg -
Events Folder — subfolders of mixed event photos
events/ Sports_Day/ Concert/ Field_Trip/ -
Output Folder — where sorted results are written
Output/
Ali/
Sports_Day__IMG_001.jpg
Concert__IMG_045.jpg
Siti/
Sports_Day__IMG_001.jpg ← same photo, Siti was also in it
Field_Trip__IMG_023.jpg
_unmatched/
blurry_photo.jpg
no_face_detected.jpg
kindersort_log.txt
- Face matching threshold is
0.55(strict — minimises false positives) - Photos are copied, not moved — originals are always safe
- Photos placed directly in the Events root (no subfolders) are also supported — the folder name is used as the event name
- If a reference photo has no detectable face, that student is skipped with a warning
- v1.1 uses higher-accuracy face recognition (CNN + multi-jitter) — sorting 500 photos typically takes 8–15 minutes on a standard PC; the spinning timer shows progress so the app will not appear frozen
| Component | Library |
|---|---|
| Face recognition | face_recognition + dlib |
| Image handling | Pillow |
| GUI | tkinter (built-in) |
| Packaging | PyInstaller |
| Language | Python 3.10+ |
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python main.pyBuild Windows executable:
pyinstaller --onefile --windowed --name "KinderSort" main.py
# Output: dist/KinderSort.exe





