School Nail Rules



Borderline result: Ask for another picture (RECHECK)
Rules version: school_rules_v1

Next Experiment: Real Measurement

Right now AI is making a visual judgement. Later we will add a known-size reference beside the finger, calculate pixels per millimetre, locate the fingertip and nail edges, and compare a calibrated free-edge measurement with the school rule.

IMAGE → REFERENCE SCALE → PIXELS PER MM → FINGERTIP EDGE → NAIL EDGE → FREE EDGE PIXELS → MILLIMETRES → COMPARE WITH SCHOOL RULE

Gemini Vision Experiments

API mode: Interactions
Model: gemini-3.6-flash
Gemini configured: Yes
Connection: Not tested
Gemini requests today: 0 / 100


Recent sanitized requests
[
    {
        "request_id": "gem_20260903133650_bec871f44d21",
        "created_at": "2026-09-03T13:37:01+00:00",
        "request_type": "interactions_vision",
        "api_mode": "interactions",
        "interaction_id": null,
        "ok": true,
        "code": null,
        "http_status": 200,
        "google_status": null,
        "google_error_code": null,
        "sanitized_error": null,
        "model": "gemini-3.6-flash",
        "prompt_version": "1",
        "processing_time_ms": 11309.4,
        "input": {
            "sha256": "085fcb0cc2ceb20bbc8dd037858083a15d0ffdd1e3c2857c9191b2d9a9855ac9",
            "width": 564,
            "height": 224,
            "size_bytes": 10651,
            "mime": "image/jpeg"
        },
        "cache_hit": false,
        "school_rules": {
            "rules_version": "school_rules_v1",
            "length_check_enabled": true,
            "maximum_free_edge_mm": 3,
            "visual_tolerance": "normal",
            "cleanliness_check_enabled": false,
            "polish_check_enabled": false,
            "artificial_nail_check_enabled": false,
            "uncertain_policy": "RECHECK",
            "borderline_result": "RECHECK",
            "prompt_behavior": "NORMAL: make a cautious ordinary visual screening; return UNCERTAIN for borderline views."
        },
        "result": {
            "suitable": true,
            "finger_count": 5,
            "finger": {
                "box_2d": [
                    294,
                    395,
                    735,
                    460
                ],
                "tip": [
                    294,
                    432
                ]
            },
            "nail": {
                "visible": true,
                "box_2d": [
                    294,
                    417,
                    360,
                    458
                ],
                "polygon": [
                    [
                        294,
                        432
                    ],
                    [
                        298,
                        421
                    ],
                    [
                        315,
                        417
                    ],
                    [
                        345,
                        418
                    ],
                    [
                        358,
                        428
                    ],
                    [
                        358,
                        442
                    ],
                    [
                        348,
                        455
                    ],
                    [
                        318,
                        458
                    ],
                    [
                        298,
                        450
                    ]
                ],
                "free_edge": [
                    [
                        294,
                        423
                    ],
                    [
                        294,
                        432
                    ],
                    [
                        295,
                        445
                    ]
                ],
                "mask": [
                    [
                        294,
                        432
                    ],
                    [
                        298,
                        421
                    ],
                    [
                        315,
                        417
                    ],
                    [
                        345,
                        418
                    ],
                    [
                        358,
                        428
                    ],
                    [
                        358,
                        442
                    ],
                    [
                        348,
                        455
                    ],
                    [
                        318,
                        458
                    ],
                    [
                        298,
                        450
                    ]
                ]
            },
            "quality": {
                "blur": "low",
                "lighting": "dim",
                "occluded": false
            },
            "school_screening": {
                "status": "LOOKS_ACCEPTABLE",
                "rule_maximum_free_edge_mm": 3,
                "visual_assessment": "The fingernails appear neatly trimmed and short. They are well within acceptable length limits.",
                "confidence": "high",
                "measurement_available": false,
                "requires_calibration_for_mm": true
            },
            "student_message": ""
        },
        "normalized_coordinates": {
            "finger_box": [
                294,
                395,
                735,
                460
            ],
            "finger_tip": [
                294,
                432
            ],
            "nail_box": [
                294,
                417,
                360,
                458
            ],
            "nail_polygon": [
                [
                    294,
                    432
                ],
                [
                    298,
                    421
                ],
                [
                    315,
                    417
                ],
                [
                    345,
                    418
                ],
                [
                    358,
                    428
                ],
                [
                    358,
                    442
                ],
                [
                    348,
                    455
                ],
                [
                    318,
                    458
                ],
                [
                    298,
                    450
                ]
            ]
        },
        "source_coordinates": {
            "finger_box": {
                "x": 222.78,
                "y": 65.86,
                "width": 36.66,
                "height": 98.78
            },
            "finger_tip": {
                "x": 243.65,
                "y": 65.86
            },
            "nail_box": {
                "x": 235.19,
                "y": 65.86,
                "width": 23.12,
                "height": 14.78
            },
            "nail_polygon": [
                {
                    "x": 243.65,
                    "y": 65.86
                },
                {
                    "x": 237.44,
                    "y": 66.75
                },
                {
                    "x": 235.19,
                    "y": 70.56
                },
                {
                    "x": 235.75,
                    "y": 77.28
                },
                {
                    "x": 241.39,
                    "y": 80.19
                },
                {
                    "x": 249.29,
                    "y": 80.19
                },
                {
                    "x": 256.62,
                    "y": 77.95
                },
                {
                    "x": 258.31,
                    "y": 71.23
                },
                {
                    "x": 253.8,
                    "y": 66.75
                }
            ],
            "free_edge": [
                {
                    "x": 238.57,
                    "y": 65.86
                },
                {
                    "x": 243.65,
                    "y": 65.86
                },
                {
                    "x": 250.98,
                    "y": 66.08
                }
            ]
        }
    },
    {
        "request_id": "gem_20260903132034_aedec74cd827",
        "created_at": "2026-09-03T13:20:43+00:00",
        "request_type": "interactions_vision",
        "api_mode": "interactions",
        "interaction_id": null,
        "ok": true,
        "code": null,
        "http_status": 200,
        "google_status": null,
        "google_error_code": null,
        "sanitized_error": null,
        "model": "gemini-3.6-flash",
        "prompt_version": "1",
        "processing_time_ms": 8581.4,
        "input": {
            "sha256": "ea31c0b189b4d90d8126221c89c80c2de790585be6c372edc8ce9462ae4e524b",
            "width": 564,
            "height": 224,
            "size_bytes": 10685,
            "mime": "image/jpeg"
        },
        "cache_hit": false,
        "result": {
            "suitable": true,
            "finger_count": 1,
            "finger": {
                "box_2d": [
                    292,
                    510,
                    529,
                    925
                ],
                "tip": [
                    375,
                    510
                ]
            },
            "nail": {
                "visible": true,
                "box_2d": [
                    300,
                    513,
                    440,
                    570
                ],
                "polygon": [
                    [
                        300,
                        545
                    ],
                    [
                        320,
                        518
                    ],
                    [
                        375,
                        510
                    ],
                    [
                        425,
                        525
                    ],
                    [
                        440,
                        550
                    ],
                    [
                        400,
                        568
                    ],
                    [
                        340,
                        565
                    ]
                ],
                "mask": [
                    [
                        300,
                        545
                    ],
                    [
                        320,
                        518
                    ],
                    [
                        375,
                        510
                    ],
                    [
                        425,
                        525
                    ],
                    [
                        440,
                        550
                    ],
                    [
                        400,
                        568
                    ],
                    [
                        340,
                        565
                    ]
                ]
            },
            "quality": {
                "blur": "low",
                "lighting": "dim",
                "occluded": false
            },
            "student_message": ""
        },
        "normalized_coordinates": {
            "finger_box": [
                292,
                510,
                529,
                925
            ],
            "finger_tip": [
                375,
                510
            ],
            "nail_box": [
                300,
                513,
                440,
                570
            ],
            "nail_polygon": [
                [
                    300,
                    545
                ],
                [
                    320,
                    518
                ],
                [
                    375,
                    510
                ],
                [
                    425,
                    525
                ],
                [
                    440,
                    550
                ],
                [
                    400,
                    568
                ],
                [
                    340,
                    565
                ]
            ]
        },
        "source_coordinates": {
            "finger_box": {
                "x": 287.64,
                "y": 65.41,
                "width": 234.06,
                "height": 53.09
            },
            "finger_tip": {
                "x": 287.64,
                "y": 84
            },
            "nail_box": {
                "x": 289.33,
                "y": 67.2,
                "width": 32.15,
                "height": 31.36
            },
            "nail_polygon": [
                {
                    "x": 307.38,
                    "y": 67.2
                },
                {
                    "x": 292.15,
                    "y": 71.68
                },
                {
                    "x": 287.64,
                    "y": 84
                },
                {
                    "x": 296.1,
                    "y": 95.2
                },
                {
                    "x": 310.2,
                    "y": 98.56
                },
                {
                    "x": 320.35,
                    "y": 89.6
                },
                {
                    "x": 318.66,
                    "y": 76.16
                }
            ]
        }
    },
    {
        "request_id": "gem_20260903122848_02a49695907c",
        "created_at": "2026-09-03T12:28:49+00:00",
        "ok": false,
        "code": "gemini_model_unavailable",
        "http_status": 404,
        "google_status": "NOT_FOUND",
        "google_error_code": 404,
        "sanitized_error": "This model models/gemini-2.5-flash is no longer available to new users. Please update your code to use models/gemini-3.6-flash for the latest features and improvements. We recommend you to use the Interactions API.",
        "model": "gemini-2.5-flash",
        "prompt_version": "1",
        "processing_time_ms": 310.4,
        "input": {
            "sha256": "e3a50eb67f2002cbebb67b582667ec2089d2308d97da652ca56a248b0161b8d1",
            "width": 564,
            "height": 224,
            "size_bytes": 11923,
            "mime": "image/jpeg"
        },
        "cache_hit": false
    },
    {
        "request_id": "gem_20260903122432_b6dbe17a42ea",
        "created_at": "2026-09-03T12:24:33+00:00",
        "ok": false,
        "code": "gemini_model_unavailable",
        "http_status": 404,
        "google_status": "NOT_FOUND",
        "google_error_code": 404,
        "sanitized_error": "This model models/gemini-2.5-flash is no longer available to new users. Please update your code to use models/gemini-3.6-flash for the latest features and improvements. We recommen",
        "model": "gemini-2.5-flash",
        "prompt_version": "1",
        "processing_time_ms": 315.4,
        "input": {
            "sha256": "06e5610e36a80dda493e4443450fe00e1eb72eb7fa1fadaca4afaba50547cc12",
            "width": 564,
            "height": 224,
            "size_bytes": 15530,
            "mime": "image/jpeg"
        },
        "cache_hit": false
    },
    {
        "request_id": "gem_20260903121941_825125b9eaf8",
        "created_at": "2026-09-03T12:19:42+00:00",
        "ok": false,
        "code": "gemini_http_error",
        "sanitized_error": "HTTP 404",
        "model": "gemini-2.5-flash",
        "prompt_version": "1",
        "processing_time_ms": 401.6,
        "input": {
            "sha256": "3adfb83b1c405b6840c60998c2364dcfa1580ef624002127a22df462eca8eb1f",
            "width": 564,
            "height": 224,
            "size_bytes": 15249,
            "mime": "image/jpeg"
        },
        "cache_hit": false
    }
]

Developer / Parent View

Development mode: analysis images are currently being stored on this server for detector improvement. Oldest attempts are automatically removed after 300 records.

Student STEM Lab · Experimental Detectors / Full Hand Detector · Teacher / Presentation Mode · Export Training Dataset

Why doesn't Student Mode automatically find the nail?

Student Mode is collecting the examples that will teach a future AI what a nail looks like. The student's marking is the correct answer, called ground truth.

Ground Truth: The correct answer provided by a person for an AI training example.

Training Dataset Review

0 labelled example(s). Student names are not collected.

16 stored attempt(s).

20260903_102339_32f4c845a8a1

2026-09-03T10:23:39+00:00

Result: Nail candidate detected
Confidence: 84
Feedback: none
Processing: 153.1 ms

20260903_102151_b095e34fd6c4

2026-09-03T10:21:51+00:00

Result: Adjust hand
Confidence: 76
Feedback: none
Processing: 73.7 ms

20260903_102055_592b0f2e7160

2026-09-03T10:20:55+00:00

Result: No finger/nail detected
Confidence: 0
Feedback: none
Processing: 190.6 ms

20260903_080607_ce165efe88b0

2026-09-03T08:06:07+00:00

Result: Low confidence - retry
Confidence: 44
Feedback: none
Processing: 178.8 ms

20260903_070429_80298e939486

2026-09-03T07:04:29+00:00

Result: No finger/nail detected
Confidence: 36
Feedback: none
Processing: 219.7 ms

20260903_063656_a73dc7afe996

2026-09-03T06:36:56+00:00

Result: Low confidence - retry
Confidence: 52
Feedback: none
Processing: 289.6 ms

20260903_061345_f09493d80839

2026-09-03T06:13:45+00:00

Result: Nail candidate detected
Confidence: 91
Feedback: none
Processing: 175.9 ms

20260903_053452_f8d17cb55d2e

2026-09-03T05:34:52+00:00

Result: Nail candidate detected
Confidence: 91
Feedback: none
Processing: 130.3 ms

20260903_051836_4ab234911b24

2026-09-03T05:18:36+00:00

Result: Nail candidate detected
Confidence: 90
Feedback: none
Processing: 171.1 ms

20260903_051306_43f9d5236f22

2026-09-03T05:13:06+00:00

Result: Adjust hand
Confidence: 68
Feedback: none
Processing: 76.7 ms

20260903_051253_8fe509672df9

2026-09-03T05:12:53+00:00

Result: Adjust hand
Confidence: 50
Feedback: none
Processing: 103.5 ms

20260903_050111_82b70d1ee063

2026-09-03T05:01:11+00:00

Result: Nail candidate detected
Confidence: 85
Feedback: wrong
Processing: 55.4 ms

20260903_050059_1f17d591d82c

2026-09-03T05:00:59+00:00

Result: Nail candidate detected
Confidence: 85
Feedback: none
Processing: 119.2 ms

20260903_040108_7c31e2887ff6

2026-09-03T04:01:08+00:00

Result: Nail candidate detected
Confidence: 85
Feedback: none
Processing: 60.9 ms

20260903_035013_bd4d1a6f9ea5

2026-09-03T03:50:13+00:00

Result: Nail candidate detected
Confidence: 85
Feedback: none
Processing: 62.3 ms

20260903_034806_7a6303d8d359

2026-09-03T03:48:06+00:00

Result: Nail candidate detected
Confidence: 85
Feedback: none
Processing: 111.2 ms