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


Result: Nail candidate detected
Confidence: 84
Feedback: none
Processing: 153.1 ms
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
API mode: Interactions
Model: gemini-3.6-flash
Gemini configured: Yes
Connection: Not tested
Gemini requests today: 0 / 100
[
{
"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
}
]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
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.
0 labelled example(s). Student names are not collected.
16 stored attempt(s).
2026-09-03T10:23:39+00:00


Result: Nail candidate detected
Confidence: 84
Feedback: none
Processing: 153.1 ms
2026-09-03T10:21:51+00:00


Result: Adjust hand
Confidence: 76
Feedback: none
Processing: 73.7 ms
2026-09-03T10:20:55+00:00


Result: No finger/nail detected
Confidence: 0
Feedback: none
Processing: 190.6 ms
2026-09-03T08:06:07+00:00


Result: Low confidence - retry
Confidence: 44
Feedback: none
Processing: 178.8 ms
2026-09-03T07:04:29+00:00


Result: No finger/nail detected
Confidence: 36
Feedback: none
Processing: 219.7 ms
2026-09-03T06:36:56+00:00


Result: Low confidence - retry
Confidence: 52
Feedback: none
Processing: 289.6 ms
2026-09-03T06:13:45+00:00


Result: Nail candidate detected
Confidence: 91
Feedback: none
Processing: 175.9 ms
2026-09-03T05:34:52+00:00


Result: Nail candidate detected
Confidence: 91
Feedback: none
Processing: 130.3 ms
2026-09-03T05:18:36+00:00


Result: Nail candidate detected
Confidence: 90
Feedback: none
Processing: 171.1 ms
2026-09-03T05:13:06+00:00


Result: Adjust hand
Confidence: 68
Feedback: none
Processing: 76.7 ms
2026-09-03T05:12:53+00:00


Result: Adjust hand
Confidence: 50
Feedback: none
Processing: 103.5 ms
2026-09-03T05:01:11+00:00


Result: Nail candidate detected
Confidence: 85
Feedback: wrong
Processing: 55.4 ms
2026-09-03T05:00:59+00:00


Result: Nail candidate detected
Confidence: 85
Feedback: none
Processing: 119.2 ms
2026-09-03T04:01:08+00:00


Result: Nail candidate detected
Confidence: 85
Feedback: none
Processing: 60.9 ms
2026-09-03T03:50:13+00:00


Result: Nail candidate detected
Confidence: 85
Feedback: none
Processing: 62.3 ms
2026-09-03T03:48:06+00:00


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