diff --git a/README.md b/README.md index 55f9e93761cdf5e9d995c59d2f0b2c104f997053..2dc88aa5389d5f45dc7627fe592d0b005b265bd6 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,15 @@ --- -title: FitTest 24 -emoji: 🦀 -colorFrom: red -colorTo: gray +title: FitTest +emoji: 📐 +colorFrom: blue +colorTo: indigo sdk: gradio -sdk_version: 6.30.0 -python_version: '3.12' app_file: app.py -pinned: false --- +# FitTest +24 visual fitting questions, one question at a time. Judge A, B, and C independently; at least one option fits. -Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference +Hosted on the free ZeroGPU tier. This study does not run model inference or request GPU work. +Submissions go to a private dataset via the server-side HF_TOKEN secret. RESPONSES_REPO identifies the dataset. No answer key or response-reading endpoint is included. + +Participants should complete the study in one session. Previous/Next retain answers during the session. Final Submit confirms successful storage. No names, emails, or IP addresses are recorded in the submission files. diff --git a/app.py b/app.py new file mode 100644 index 0000000000000000000000000000000000000000..473224d99553dac71970e9c521323d4274cb1aa9 --- /dev/null +++ b/app.py @@ -0,0 +1,56 @@ +import io,json,os,threading,time,uuid +from pathlib import Path +from datetime import datetime,timezone +import gradio as gr +from huggingface_hub import HfApi +ROOT=Path(__file__).parent +QS=json.loads((ROOT/'questions.json').read_text()) +LOCK=threading.Lock() +CRITERIA='''## Judging criteria +**At least one option fits in every question.** Two or all three may also fit. For each image, choose **Fits** or **Does not fit**. + +- **Surface fit:** the object’s entire footprint must stay within the usable top surface. +- **Container fit:** the entire rigid object must fit inside the container without protruding. +''' +def new_state():return {'id':str(uuid.uuid4()),'index':0,'answers':{},'start':time.time(),'submitted':False} +def render(s): + q=QS[s['index']];a=s['answers'].get(q['id'],{}) + return [s,f"### Question {s['index']+1} of 24 · {'Surface fit' if q['domain']=='area' else 'Container fit'}\n\n{q['question']}",*[str(ROOT/'images'/Path(q['images'][l]).name) for l in 'ABC'],*[gr.update(value=a.get(l),interactive=not s['submitted']) for l in 'ABC'],gr.update(interactive=s['index']>0 and not s['submitted']),gr.update(value='Submit' if s['index']==23 else 'Next',interactive=not s['submitted']), ''] +def init():return render(new_state()) +def move(s,a,b,c,direction): + if s is None:s=new_state() + if s['submitted']:raise gr.Error('Your responses have already been submitted.') + if direction==1 and any(v not in ['Fits','Does not fit'] for v in [a,b,c]):raise gr.Error('Please judge A, B, and C before continuing.') + s['answers'][QS[s['index']]['id']]=dict(zip('ABC',[a,b,c])) + if direction==1 and s['index']==23: + if len(s['answers'])!=24 or any(any(v not in ['Fits','Does not fit'] for v in r.values()) for r in s['answers'].values()):raise gr.Error('Please answer all options before submitting.') + token,repo=os.getenv('HF_TOKEN'),os.getenv('RESPONSES_REPO') + if not token or not repo:raise gr.Error('Response storage is not configured. Please contact the study owner.') + data={'participant_id':s['id'],'study_version':'fit-min1-24-20261009-v1','submitted_at':datetime.now(timezone.utc).isoformat(),'elapsed_seconds':int(time.time()-s['start']),'answers':{qid:{l:'Yes' if v=='Fits' else 'No' for l,v in row.items()} for qid,row in s['answers'].items()}} + try: + with LOCK:HfApi(token=token).upload_file(path_or_fileobj=io.BytesIO(json.dumps(data,indent=2).encode()),path_in_repo=f"responses/{s['id']}.json",repo_id=repo,repo_type='dataset',commit_message='Save FitTest submission') + except Exception:raise gr.Error('Your submission was not saved. Please press Submit again.') + s['submitted']=True;out=render(s);out[-1]=f"## Thank you!\nYour responses have been saved privately.\n\nReceipt: `{s['id']}`";return out + s['index']=max(0,min(23,s['index']+direction));return render(s) +def previous(s,a,b,c):return move(s,a,b,c,-1) +def next_question(s,a,b,c):return move(s,a,b,c,1) +with gr.Blocks(title='FitTest') as demo: + gr.Markdown('# FitTest') + gr.Markdown(CRITERIA) + state=gr.State() + question=gr.Markdown() + imgs=[];radios=[] + with gr.Row(): + for l in 'ABC': + with gr.Column(): + imgs.append(gr.Image(label='Option '+l,interactive=False,show_download_button=False,show_fullscreen_button=True)) + radios.append(gr.Radio(['Fits','Does not fit'],label=l,value=None)) + with gr.Row(): + prev=gr.Button('Previous');nxt=gr.Button('Next',variant='primary') + status=gr.Markdown() + outputs=[state,question,*imgs,*radios,prev,nxt,status] + demo.load(init,outputs=outputs,api_name=False) + prev.click(previous,inputs=[state,*radios],outputs=outputs,api_name=False) + nxt.click(next_question,inputs=[state,*radios],outputs=outputs,api_name=False) + gr.Markdown('Responses are visible only to the study owner. Please finish in one session; refreshing the page starts a new session.') +if __name__=='__main__':demo.queue(default_concurrency_limit=8).launch() diff --git a/images/Q01_A.jpg b/images/Q01_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cbcaf34812e2da0a3bbe340dc88da30f9ad618b9 Binary files /dev/null and b/images/Q01_A.jpg differ diff --git a/images/Q01_B.jpg b/images/Q01_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..347075ef95f146dc1ac8fe5bfa506f8fe1f4dc55 Binary files /dev/null and b/images/Q01_B.jpg differ diff --git a/images/Q01_C.jpg b/images/Q01_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..96407c08b3a11f167ae7961414b63c1dcedd2fc7 Binary files /dev/null and b/images/Q01_C.jpg differ diff --git a/images/Q02_A.jpg b/images/Q02_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..83fc8f19819b984c127dcfca061476f77f26f56d Binary files /dev/null and b/images/Q02_A.jpg differ diff --git a/images/Q02_B.jpg b/images/Q02_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8f4e1505fc3b68af9b83c6064b139bda4187554d Binary files /dev/null and b/images/Q02_B.jpg differ diff --git a/images/Q02_C.jpg b/images/Q02_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2d689097a09972620d5d4446a2968a36f245a9f7 Binary files /dev/null and b/images/Q02_C.jpg differ diff --git a/images/Q03_A.jpg b/images/Q03_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..45de6c6bf7d353d0d8eaf9ace87355ed9568cca0 Binary files /dev/null and b/images/Q03_A.jpg differ diff --git a/images/Q03_B.jpg b/images/Q03_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..595fff6821161484f68c5cf1951478eaaec46edc Binary files /dev/null and b/images/Q03_B.jpg differ diff --git a/images/Q03_C.jpg b/images/Q03_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7efc5a7513a39bd67a04eeb109524097db61a6e4 Binary files /dev/null and b/images/Q03_C.jpg differ diff --git a/images/Q04_A.jpg b/images/Q04_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aea705085466f004fd754ac8d5eb133abada48a7 Binary files /dev/null and b/images/Q04_A.jpg differ diff --git a/images/Q04_B.jpg b/images/Q04_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d02b01ac0475ff12d65664ba38ad2a81c4fede61 Binary files /dev/null and b/images/Q04_B.jpg differ diff --git a/images/Q04_C.jpg b/images/Q04_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f47ff088ce0d01fc43e7819590d143c1a83d394 Binary files /dev/null and b/images/Q04_C.jpg differ diff --git a/images/Q05_A.jpg b/images/Q05_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ab6482bf4c8bb51d05082fe72da110f1a025c406 Binary files /dev/null and b/images/Q05_A.jpg differ diff --git a/images/Q05_B.jpg b/images/Q05_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2496fb85d2b6a7a180f0b28683858b526876e384 Binary files /dev/null and b/images/Q05_B.jpg differ diff --git a/images/Q05_C.jpg b/images/Q05_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..72dba2d47817a940ca22aa358b6d64076d12fe48 Binary files /dev/null and b/images/Q05_C.jpg differ diff --git a/images/Q06_A.jpg b/images/Q06_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..56eeef37c001cd3914b1f827c23628a80f4b5a23 Binary files /dev/null and b/images/Q06_A.jpg differ diff --git a/images/Q06_B.jpg b/images/Q06_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..95a9963c6d7c9e39be49fb948ce173872b8165e1 Binary files /dev/null and b/images/Q06_B.jpg differ diff --git a/images/Q06_C.jpg b/images/Q06_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc29236f48ffb07ec03e63d5ea62f96af22e841a Binary files /dev/null and b/images/Q06_C.jpg differ diff --git a/images/Q07_A.jpg b/images/Q07_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..610a7e7dc77ec92fd166994a83af198f479cacf3 Binary files /dev/null and b/images/Q07_A.jpg differ diff --git a/images/Q07_B.jpg b/images/Q07_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..179c9dee4859918e43d24e5167d67d6de44e7e08 Binary files /dev/null and b/images/Q07_B.jpg differ diff --git a/images/Q07_C.jpg b/images/Q07_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..17273b35611f58ef6f122f3fd2a0914c60895c69 Binary files /dev/null and b/images/Q07_C.jpg differ diff --git a/images/Q08_A.jpg b/images/Q08_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f7f479b375c52f0bddb6ede6f3db4d0a0482a3e Binary files /dev/null and b/images/Q08_A.jpg differ diff --git a/images/Q08_B.jpg b/images/Q08_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9ffc9ef36c9b5258bb0cbd709d9672d3e264e19d Binary files /dev/null and b/images/Q08_B.jpg differ diff --git a/images/Q08_C.jpg b/images/Q08_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ad768fc3300daddeaa4a496094423869528a149 Binary files /dev/null and b/images/Q08_C.jpg differ diff --git a/images/Q09_A.jpg b/images/Q09_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b56199efc118a93fbfd7491b428558c0655e1426 Binary files /dev/null and b/images/Q09_A.jpg differ diff --git a/images/Q09_B.jpg b/images/Q09_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c82842d758cc1bead8577910cd0062de7acca9be Binary files /dev/null and b/images/Q09_B.jpg differ diff --git a/images/Q09_C.jpg b/images/Q09_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2ec97961f62ae26f446f69dbd5a052c109e8d3fa Binary files /dev/null and b/images/Q09_C.jpg differ diff --git a/images/Q10_A.jpg b/images/Q10_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..98d8d527c0585ef25b8a8266300dfe56c8446764 Binary files /dev/null and b/images/Q10_A.jpg differ diff --git a/images/Q10_B.jpg b/images/Q10_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5108ddf1612a2ec7b07384a696d0b6030eb5a098 Binary files /dev/null and b/images/Q10_B.jpg differ diff --git a/images/Q10_C.jpg b/images/Q10_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6c0ef6751cf0ed5dbdbc95092725109debe1d767 Binary files /dev/null and b/images/Q10_C.jpg differ diff --git a/images/Q11_A.jpg b/images/Q11_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d334d8b2b6e2ef17860ae309ffad92a1906882be Binary files /dev/null and b/images/Q11_A.jpg differ diff --git a/images/Q11_B.jpg b/images/Q11_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f79d07c7797a4e7afc0cd16df9b0d506e6a8cb3c Binary files /dev/null and b/images/Q11_B.jpg differ diff --git a/images/Q11_C.jpg b/images/Q11_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9a1da11d89398e5e07b1f287a91776e656173fac Binary files /dev/null and b/images/Q11_C.jpg differ diff --git a/images/Q12_A.jpg b/images/Q12_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d5a0cb905d5169e7a64e61aa9f06fe955a76ee52 Binary files /dev/null and b/images/Q12_A.jpg differ diff --git a/images/Q12_B.jpg b/images/Q12_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..abafa320f6ea25f37dffc252e6dd295311a346c6 Binary files /dev/null and b/images/Q12_B.jpg differ diff --git a/images/Q12_C.jpg b/images/Q12_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b6cca060a76179fb0c7fcdf9e071ff2f0c27bb76 Binary files /dev/null and b/images/Q12_C.jpg differ diff --git a/images/Q13_A.jpg b/images/Q13_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffae7ae717a9842fa9eff757160977168294f13e Binary files /dev/null and b/images/Q13_A.jpg differ diff --git a/images/Q13_B.jpg b/images/Q13_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..03fd0e2bb8be24b93be56c47cdbd0a1cfa54c8c9 Binary files /dev/null and b/images/Q13_B.jpg differ diff --git a/images/Q13_C.jpg b/images/Q13_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b686638fef0ce939681df04bb1e16fe61837d983 Binary files /dev/null and b/images/Q13_C.jpg differ diff --git a/images/Q14_A.jpg b/images/Q14_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9ebf8ed8036c04ee4356d01a9984ee1126045f73 Binary files /dev/null and b/images/Q14_A.jpg differ diff --git a/images/Q14_B.jpg b/images/Q14_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f4504a166b2ece902388472f3eeea5fae5daeb13 Binary files /dev/null and b/images/Q14_B.jpg differ diff --git a/images/Q14_C.jpg b/images/Q14_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db29c2a6fd60cd0092cfe5d9aba4f91b1fc9fdc3 Binary files /dev/null and b/images/Q14_C.jpg differ diff --git a/images/Q15_A.jpg b/images/Q15_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fbce782c7fd2c0a1b7c1ac2e733b3b917421e4ec Binary files /dev/null and b/images/Q15_A.jpg differ diff --git a/images/Q15_B.jpg b/images/Q15_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8e368598d32a1a9a10a91f20e11095252e3e4ff0 Binary files /dev/null and b/images/Q15_B.jpg differ diff --git a/images/Q15_C.jpg b/images/Q15_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8d75a14da22954ce8f71694961886e28f3ffc3ae Binary files /dev/null and b/images/Q15_C.jpg differ diff --git a/images/Q16_A.jpg b/images/Q16_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..49f65219201ec0bdb3ce7a97c6f597410035441c Binary files /dev/null and b/images/Q16_A.jpg differ diff --git a/images/Q16_B.jpg b/images/Q16_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9ab6f0de5259a26d96ba35229f45786b29378c0e Binary files /dev/null and b/images/Q16_B.jpg differ diff --git a/images/Q16_C.jpg b/images/Q16_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0c8a71cb50f962ad5aa7bb96bffe28e1653dbf28 Binary files /dev/null and b/images/Q16_C.jpg differ diff --git a/images/Q17_A.jpg b/images/Q17_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e949854894b9770cb2e6f0d0cc673f483c371cef Binary files /dev/null and b/images/Q17_A.jpg differ diff --git a/images/Q17_B.jpg b/images/Q17_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aabcf131ba92ede6fc4459104a6949d4844ff7f7 Binary files /dev/null and b/images/Q17_B.jpg differ diff --git a/images/Q17_C.jpg b/images/Q17_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e65942ca3c53740165bffaef9e3d63a3308f2ccf Binary files /dev/null and b/images/Q17_C.jpg differ diff --git a/images/Q18_A.jpg b/images/Q18_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7fa5ccecf4335fca3e1f40fe43935861a28d8321 Binary files /dev/null and b/images/Q18_A.jpg differ diff --git a/images/Q18_B.jpg b/images/Q18_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cfb673f0142d370d9558bd456edf244d6d22338a Binary files /dev/null and b/images/Q18_B.jpg differ diff --git a/images/Q18_C.jpg b/images/Q18_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..379cc067be342ba932f048b7f4e08e8ea6b0f8cc Binary files /dev/null and b/images/Q18_C.jpg differ diff --git a/images/Q19_A.jpg b/images/Q19_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..776ef080767f7b3f6e402ec6400133038ad2d699 Binary files /dev/null and b/images/Q19_A.jpg differ diff --git a/images/Q19_B.jpg b/images/Q19_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..67a7fecf117f494f8f25019ab0a1f85379318c53 Binary files /dev/null and b/images/Q19_B.jpg differ diff --git a/images/Q19_C.jpg b/images/Q19_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..463305c056ee9664bbc24e2fa20580725b7627af Binary files /dev/null and b/images/Q19_C.jpg differ diff --git a/images/Q20_A.jpg b/images/Q20_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a1f23022ade6ecbd7e09c562bbbce77ebec3bc9 Binary files /dev/null and b/images/Q20_A.jpg differ diff --git a/images/Q20_B.jpg b/images/Q20_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7e925133ee9a6b00591a38876e9f2f6a89e49882 Binary files /dev/null and b/images/Q20_B.jpg differ diff --git a/images/Q20_C.jpg b/images/Q20_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5251cb365546b6107c8c5b30196410cf99dbcc5b Binary files /dev/null and b/images/Q20_C.jpg differ diff --git a/images/Q21_A.jpg b/images/Q21_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7ba9b978d723e3157b190814ba2a96befcb40824 Binary files /dev/null and b/images/Q21_A.jpg differ diff --git a/images/Q21_B.jpg b/images/Q21_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9bd3353a4bbee7d0d1bc6d497d7bc93d28d31acd Binary files /dev/null and b/images/Q21_B.jpg differ diff --git a/images/Q21_C.jpg b/images/Q21_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0c9b677dda75ac0847ffdf095eeeff6fea53651c Binary files /dev/null and b/images/Q21_C.jpg differ diff --git a/images/Q22_A.jpg b/images/Q22_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6b6db1e2ae1aff7aec6b0e3738219c91dc4aa8bb Binary files /dev/null and b/images/Q22_A.jpg differ diff --git a/images/Q22_B.jpg b/images/Q22_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..83bf6466f9fe1d4ffed28e5baa460d8e83403a6a Binary files /dev/null and b/images/Q22_B.jpg differ diff --git a/images/Q22_C.jpg b/images/Q22_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8800a32a85681452cb2b59110935553d05818fe6 Binary files /dev/null and b/images/Q22_C.jpg differ diff --git a/images/Q23_A.jpg b/images/Q23_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cbd732149f708a22ec8b08501db9753342d22d88 Binary files /dev/null and b/images/Q23_A.jpg differ diff --git a/images/Q23_B.jpg b/images/Q23_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d7e6524baff79adac4d2a8c764135ac3f160f99f Binary files /dev/null and b/images/Q23_B.jpg differ diff --git a/images/Q23_C.jpg b/images/Q23_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7241b7d46f2df8464b68ac26f4d049a839a6925b Binary files /dev/null and b/images/Q23_C.jpg differ diff --git a/images/Q24_A.jpg b/images/Q24_A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fb4263d9118c0cb695c3ee3dca868b2e60e4ed97 Binary files /dev/null and b/images/Q24_A.jpg differ diff --git a/images/Q24_B.jpg b/images/Q24_B.jpg new file mode 100644 index 0000000000000000000000000000000000000000..31c5171bb8415f0c3a1c55f72da8398e169a5932 Binary files /dev/null and b/images/Q24_B.jpg differ diff --git a/images/Q24_C.jpg b/images/Q24_C.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad6cf7bcc76c44d135bf581f9cc5e332ed248ed9 Binary files /dev/null and b/images/Q24_C.jpg differ diff --git a/questions.json b/questions.json new file mode 100644 index 0000000000000000000000000000000000000000..230e10d25b16005ebfdaaed992c369f5d691c467 --- /dev/null +++ b/questions.json @@ -0,0 +1,242 @@ +[ + { + "id": "Q01", + "domain": "volume", + "question": "Can the box of baking soda fit entirely inside the cream pitcher, without protruding outside?", + "images": { + "A": "/images/Q01_A.jpg", + "B": "/images/Q01_B.jpg", + "C": "/images/Q01_C.jpg" + } + }, + { + "id": "Q02", + "domain": "volume", + "question": "Can the allspice shaker fit entirely inside the plant pot, without protruding outside?", + "images": { + "A": "/images/Q02_A.jpg", + "B": "/images/Q02_B.jpg", + "C": "/images/Q02_C.jpg" + } + }, + { + "id": "Q03", + "domain": "volume", + "question": "Can the bottle of hot sauce fit entirely inside the ice bucket, without protruding outside?", + "images": { + "A": "/images/Q03_A.jpg", + "B": "/images/Q03_B.jpg", + "C": "/images/Q03_C.jpg" + } + }, + { + "id": "Q04", + "domain": "volume", + "question": "Can the canned food fit entirely inside the shopping basket, without protruding outside?", + "images": { + "A": "/images/Q04_A.jpg", + "B": "/images/Q04_B.jpg", + "C": "/images/Q04_C.jpg" + } + }, + { + "id": "Q05", + "domain": "area", + "question": "Can the box of chocolates fit on the plate without any footprint overhang?", + "images": { + "A": "/images/Q05_A.jpg", + "B": "/images/Q05_B.jpg", + "C": "/images/Q05_C.jpg" + } + }, + { + "id": "Q06", + "domain": "area", + "question": "Can the blackboard eraser fit on the folder without any footprint overhang?", + "images": { + "A": "/images/Q06_A.jpg", + "B": "/images/Q06_B.jpg", + "C": "/images/Q06_C.jpg" + } + }, + { + "id": "Q07", + "domain": "volume", + "question": "Can the beer bottle fit entirely inside the ice bucket, without protruding outside?", + "images": { + "A": "/images/Q07_A.jpg", + "B": "/images/Q07_B.jpg", + "C": "/images/Q07_C.jpg" + } + }, + { + "id": "Q08", + "domain": "volume", + "question": "Can the baby bottle fit entirely inside the bucket, without protruding outside?", + "images": { + "A": "/images/Q08_A.jpg", + "B": "/images/Q08_B.jpg", + "C": "/images/Q08_C.jpg" + } + }, + { + "id": "Q09", + "domain": "area", + "question": "Can the banana fit on the cutting board without any footprint overhang?", + "images": { + "A": "/images/Q09_A.jpg", + "B": "/images/Q09_B.jpg", + "C": "/images/Q09_C.jpg" + } + }, + { + "id": "Q10", + "domain": "volume", + "question": "Can the lime fit entirely inside the beer glass, without protruding outside?", + "images": { + "A": "/images/Q10_A.jpg", + "B": "/images/Q10_B.jpg", + "C": "/images/Q10_C.jpg" + } + }, + { + "id": "Q11", + "domain": "area", + "question": "Can the bagel fit on the platter without any footprint overhang?", + "images": { + "A": "/images/Q11_A.jpg", + "B": "/images/Q11_B.jpg", + "C": "/images/Q11_C.jpg" + } + }, + { + "id": "Q12", + "domain": "volume", + "question": "Can the bottle of medicine fit entirely inside the beaker, without protruding outside?", + "images": { + "A": "/images/Q12_A.jpg", + "B": "/images/Q12_B.jpg", + "C": "/images/Q12_C.jpg" + } + }, + { + "id": "Q13", + "domain": "area", + "question": "Can the granola bar fit on the textbook without any footprint overhang?", + "images": { + "A": "/images/Q13_A.jpg", + "B": "/images/Q13_B.jpg", + "C": "/images/Q13_C.jpg" + } + }, + { + "id": "Q14", + "domain": "volume", + "question": "Can the egg fit entirely inside the coffee cup, without protruding outside?", + "images": { + "A": "/images/Q14_A.jpg", + "B": "/images/Q14_B.jpg", + "C": "/images/Q14_C.jpg" + } + }, + { + "id": "Q15", + "domain": "area", + "question": "Can the granola bar fit on the french toast without any footprint overhang?", + "images": { + "A": "/images/Q15_A.jpg", + "B": "/images/Q15_B.jpg", + "C": "/images/Q15_C.jpg" + } + }, + { + "id": "Q16", + "domain": "area", + "question": "Can the wallet fit on the notebook without any footprint overhang?", + "images": { + "A": "/images/Q16_A.jpg", + "B": "/images/Q16_B.jpg", + "C": "/images/Q16_C.jpg" + } + }, + { + "id": "Q17", + "domain": "volume", + "question": "Can the cherry tomato fit entirely inside the beer glass, without protruding outside?", + "images": { + "A": "/images/Q17_A.jpg", + "B": "/images/Q17_B.jpg", + "C": "/images/Q17_C.jpg" + } + }, + { + "id": "Q18", + "domain": "area", + "question": "Can the dvd fit on the chopping board without any footprint overhang?", + "images": { + "A": "/images/Q18_A.jpg", + "B": "/images/Q18_B.jpg", + "C": "/images/Q18_C.jpg" + } + }, + { + "id": "Q19", + "domain": "area", + "question": "Can the postcard fit on the dartboard without any footprint overhang?", + "images": { + "A": "/images/Q19_A.jpg", + "B": "/images/Q19_B.jpg", + "C": "/images/Q19_C.jpg" + } + }, + { + "id": "Q20", + "domain": "volume", + "question": "Can the avocado fit entirely inside the bowl, without protruding outside?", + "images": { + "A": "/images/Q20_A.jpg", + "B": "/images/Q20_B.jpg", + "C": "/images/Q20_C.jpg" + } + }, + { + "id": "Q21", + "domain": "area", + "question": "Can the cucumber fit on the comic book without any footprint overhang?", + "images": { + "A": "/images/Q21_A.jpg", + "B": "/images/Q21_B.jpg", + "C": "/images/Q21_C.jpg" + } + }, + { + "id": "Q22", + "domain": "area", + "question": "Can the chocolate chip cookie fit on the newspaper without any footprint overhang?", + "images": { + "A": "/images/Q22_A.jpg", + "B": "/images/Q22_B.jpg", + "C": "/images/Q22_C.jpg" + } + }, + { + "id": "Q23", + "domain": "volume", + "question": "Can the apple fit entirely inside the trash can, without protruding outside?", + "images": { + "A": "/images/Q23_A.jpg", + "B": "/images/Q23_B.jpg", + "C": "/images/Q23_C.jpg" + } + }, + { + "id": "Q24", + "domain": "area", + "question": "Can the comic book fit on the baking sheet without any footprint overhang?", + "images": { + "A": "/images/Q24_A.jpg", + "B": "/images/Q24_B.jpg", + "C": "/images/Q24_C.jpg" + } + } +] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..e31e44e70ebbf373f7d9e7a54929f4d1b9e1ad6a --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +# Gradio and huggingface_hub are supplied by the Space runtime.