{"ok":true,"site":{"host":"science-lab-wheat.vercel.app","url":"https://science-lab-wheat.vercel.app/","type":"live","desc":"Trajectory Lab","tools":[{"name":"get_lab_state","kind":"answer","impl":"imperative","description":"Read the active projectile-motion configuration and all recorded trials with precise measurements.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_oscillator_state","kind":"answer","impl":"imperative","description":"Read the Mass–Spring Lab configuration and recorded oscillator measurements.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_projectile_visual_aids","kind":"act","impl":"imperative","description":"Show or hide the live horizontal and vertical velocity components in the shared Projectile Lab view.","inputSchema":{"type":"object","properties":{"velocityComponents":{"type":"boolean"}},"required":["velocityComponents"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"configure_oscillator","kind":"act","impl":"imperative","description":"Set mass, spring stiffness, displacement amplitude, and ideal or damped mode for the shared Mass–Spring Lab. In damped mode, dampingCoefficientNsm controls viscous energy loss.","inputSchema":{"type":"object","properties":{"massKg":{"type":"number","minimum":0.1,"maximum":5},"springConstantNpm":{"type":"number","minimum":5,"maximum":100},"amplitudeM":{"type":"number","minimum":0.05,"maximum":0.5},"mode":{"type":"string","enum":["ideal","damped"]},"dampingCoefficientNsm":{"type":"number","minimum":0.05,"maximum":1}},"minProperties":1,"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"configure_experiment","kind":"act","impl":"imperative","description":"Set one or more launch parameters for the shared projectile-motion experiment. Values are validated by the scientific model.","inputSchema":{"type":"object","properties":{"angleDegrees":{"type":"number","minimum":5,"maximum":90},"launchSpeedMps":{"type":"number","minimum":1,"maximum":50},"launchHeightM":{"type":"number","minimum":0,"maximum":20},"gravityMps2":{"type":"number","minimum":1,"maximum":25}},"additionalProperties":false,"minProperties":1},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_oscillation_visual_aids","kind":"act","impl":"imperative","description":"Show or hide live velocity and spring-force arrows in the shared oscillator view.","inputSchema":{"type":"object","properties":{"velocityAndForce":{"type":"boolean"}},"required":["velocityAndForce"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"run_trial","kind":"act","impl":"imperative","description":"Run one trial using the current shared configuration, animate it in the lab, and return full-precision measurements.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"measure_oscillation","kind":"act","impl":"imperative","description":"Measure one ideal or viscously damped mass–spring trial, animate the shared spring, and return period, frequency, maximum speed, force, energy, and damped settling time.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"run_projectile_to_event","kind":"act","impl":"imperative","description":"Run one projectile trial and pause the visible simulation at a named physics event. Currently supports the apex, where the vertical velocity component is exactly zero.","inputSchema":{"type":"object","properties":{"event":{"type":"string","enum":["apex"]}},"required":["event"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"run_oscillation_to_event","kind":"act","impl":"imperative","description":"Measure one oscillator trial and pause at a calculated physics event: equilibrium (x and spring force are zero) or turningPoint (velocity is zero).","inputSchema":{"type":"object","properties":{"event":{"type":"string","enum":["equilibrium","turningPoint"]}},"required":["event"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"resume_projectile_animation","kind":"act","impl":"imperative","description":"Resume the currently paused projectile animation from its physics event without adding another trial record.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"resume_oscillation_animation","kind":"act","impl":"imperative","description":"Resume a currently paused oscillator animation from its physics event without recording another trial.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_trial_measurements","kind":"answer","impl":"imperative","description":"Read the precise configuration and measurements from one recorded trial.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"trialId":{"type":"string","minLength":1}},"required":["trialId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_oscillation_trials","kind":"answer","impl":"imperative","description":"List every recorded Mass–Spring Lab trial with precise measurements.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_trials","kind":"answer","impl":"imperative","description":"List every recorded trial, including configurations and full-precision measurements.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare_oscillation_trials","kind":"act","impl":"imperative","description":"Compare exactly two recorded Mass–Spring trials and report second-minus-first differences in period, frequency, energy, and settling time.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"firstTrialId":{"type":"string","minLength":1},"secondTrialId":{"type":"string","minLength":1}},"required":["firstTrialId","secondTrialId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare_trials","kind":"answer","impl":"imperative","description":"Compare exactly two recorded trials and report the measurement differences as second minus first.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"firstTrialId":{"type":"string","minLength":1},"secondTrialId":{"type":"string","minLength":1}},"required":["firstTrialId","secondTrialId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"replay_trial","kind":"act","impl":"imperative","description":"Replay a recorded trial in the visible shared laboratory without creating a new measurement record.","inputSchema":{"type":"object","properties":{"trialId":{"type":"string","minLength":1}},"required":["trialId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"reset_lab","kind":"transact","impl":"imperative","description":"Reset the shared configuration to its defaults and permanently clear all recorded trials.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Health & Education","apiSurface":"spec","toolCount":19}}