{
  "schema": "physics-anim-scene",
  "version": 1,
  "annotations": {
    "version": 2,
    "strokes": []
  },
  "physicsEnvironment": {
    "schema": "physics-anim-environment",
    "version": 1,
    "constants": {
      "pixelsPerMeter": 1000,
      "gravityAcceleration": 9.8,
      "coulombK": 8987551792.3
    }
  },
  "pixelsPerMeter": 1000,
  "gravityAcceleration": 9.8,
  "coulombK": 8987551792.3,
  "timeScale": 0.5,
  "view": {
    "x": 352.426479949077,
    "y": 54.77275620623806,
    "scale": 0.7689369828134945
  },
  "canvasBackground": {
    "mode": "coordinate",
    "origin": {
      "x": 0,
      "y": 0
    }
  },
  "entities": [
    {
      "id": 90,
      "type": "RichTextEditor",
      "state": {
        "pos": {
          "x": 540,
          "y": 65
        },
        "width": 1020,
        "height": 106,
        "text": "**探究阿基米德原理**\n长方体 10 × 10 × 5 cm，质量 1 kg；水的密度 1000 kg/m³。",
        "imageDataUrl": "",
        "imageName": "",
        "imageFit": "contain",
        "imagePosition": "top",
        "imageHeight": 92,
        "backgroundColor": "#ffffff",
        "backgroundOpacity": 0.96,
        "textColor": "#17324d",
        "fontSize": 16,
        "fontWeight": 400,
        "fontFamily": "sans-serif",
        "textAlign": "left",
        "lineHeight": 1.5,
        "padding": 16,
        "borderColor": "#cbd5e1",
        "borderWidth": 1,
        "cornerRadius": 8,
        "showBorder": true,
        "locked": true
      }
    },
    {
      "id": 1,
      "type": "LiquidRegion",
      "state": {
        "pos": {
          "x": 300,
          "y": 375
        },
        "vel": {
          "x": 0,
          "y": 0
        },
        "angle": 0,
        "width": 420,
        "height": 380,
        "surfaceY": 320,
        "verticalFluidState": {
          "detached": false,
          "bottomY": null,
          "velocityYMps": 0,
          "minX": null,
          "maxX": null,
          "velocityXMps": 0,
          "lastTankBottomY": null
        },
        "densityKgM3": 1000,
        "referencePressurePa": 101325,
        "autoBuoyancyEnabled": true,
        "autoDragEnabled": true,
        "addedMassEnabled": true,
        "addedMassCoefficient": 0.5,
        "containerWallsEnabled": true,
        "wallThickness": 4,
        "wallFriction": 0.1,
        "wallRestitution": 0.05,
        "effectiveDepthM": 0.15,
        "tankDepthM": 0.15,
        "automaticBodyDepthMode": "legacyEffectiveDepth",
        "ballVolumeModel": "sphere",
        "dragModel": "quadratic",
        "dragCoefficient": 0.47,
        "linearDragCoefficientNsM": 0,
        "waterlineRollDampingRatio": 0.2,
        "fluidVelocityXMps": 0,
        "fluidVelocityYMps": 0,
        "maxDragForceN": 0,
        "physicsSubsteps": 2,
        "showBuoyancyVectors": true,
        "showDragVectors": false,
        "showFluidReadings": true,
        "volumeConservationEnabled": true,
        "surfaceDynamicsEnabled": true,
        "liquidVolumeM3": 0.015184999999999997,
        "volumePixelsPerMeter": 1000,
        "spilledVolumeM3": 0,
        "receivedVolumeM3": 0,
        "collectedOverflowVolumeM3": 0,
        "lostOverflowVolumeM3": 0,
        "mixIncomingLiquid": true,
        "showOverflowAnimation": true,
        "overflowOutletSide": "both",
        "overflowParcels": [],
        "tiltOverflowPending": {},
        "incomingFluidParcels": [],
        "fluidSimulationTimeS": 0,
        "waveModeCount": 18,
        "waveDampingPerSecond": 0.32,
        "waveImpactCoupling": 0.1,
        "maxWaveHeightM": 0.75,
        "containerMotionCoupling": 0.5,
        "surfaceSolverMode": "finite_volume",
        "surfaceGridCellCount": 96,
        "surfaceGridCfl": 0.45,
        "surfaceGridDampingPerSecond": 0.18,
        "surfaceGridViscosityM2s": 0.0008,
        "surfaceGridMaxSubsteps": 24,
        "surfaceGridState": null,
        "waveModes": [
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          },
          {
            "aM": 0,
            "vMps": 0
          }
        ],
        "waveEnergyInputJ": 0,
        "waveBodyWorkJ": 0,
        "waveExternalWorkJ": 0,
        "waveEnergyDissipatedJ": 0,
        "waveAmplitudeLimitLossJ": 0,
        "waveBodyDragLossJ": 0,
        "waveBodyProfiles": [],
        "color": "#2563eb",
        "opacity": 0.17,
        "showDepthGrid": true,
        "showPressureGradient": true,
        "showSurfaceLabel": true,
        "waveEnabled": true,
        "waveAmplitudePx": 2,
        "waveWavelengthPx": 86,
        "waveFrequencyHz": 0.35,
        "emptyContainerMassKg": 1,
        "containerMotionMode": "fixed",
        "mechanicsEnabled": false,
        "useGravity": false,
        "isStatic": false,
        "locked": true
      }
    },
    {
      "id": 2,
      "type": "MechanicsBlock",
      "state": {
        "pos": {
          "x": 300,
          "y": 320
        },
        "vel": {
          "x": 0,
          "y": 0
        },
        "angle": 0,
        "omega": 0,
        "width": 100,
        "height": 100,
        "frontBackWidthM": 0.05,
        "mass": 1,
        "densitySettingEnabled": false,
        "fluidInteractionEnabled": true,
        "fluidManualCalibrationEnabled": false,
        "fluidEffectiveDepthM": 0,
        "fluidVolumeM3": 0,
        "fluidReferenceAreaM2": 0,
        "fluidDragCoefficient": -1,
        "fluidLinearDragCoefficientNsM": -1,
        "useGravity": true,
        "elasticityCoefficient": 0,
        "friction": 0,
        "frictionMode": "simple",
        "frictionBindings": [],
        "color": "#d97706",
        "strokeColor": "#2980b9",
        "backgroundImageDataUrl": "",
        "backgroundImageName": "",
        "backgroundImageFit": "stretch",
        "backgroundImageOpacity": 1,
        "locked": false,
        "isPointMass": false,
        "showDirectionMarker": false,
        "directionMarkerColor": "rgba(255, 255, 255, 0.7)",
        "showForces": true,
        "forceDisplayAtCoM": false,
        "showVelocityVector": false,
        "showAccelerationVector": false,
        "showTrail": false,
        "maxTrail": 100,
        "trailUnlimited": false
      }
    },
    {
      "id": 3,
      "type": "Ruler",
      "state": {
        "pos": {
          "x": 58,
          "y": 375
        },
        "length": 380,
        "thickness": 30,
        "angleDeg": 90,
        "unit": "cm",
        "minorStep": 0.1,
        "majorEvery": 50,
        "showTicks": true,
        "showNumbers": true,
        "showMeasure": false,
        "showEntityMarkers": false,
        "entityMarkersSelectedOnly": false,
        "commonGraduation": false,
        "fillColor": "#f1f5f9",
        "strokeColor": "#64748b",
        "opacity": 0.88,
        "locked": true
      }
    },
    {
      "id": 4,
      "type": "Ruler",
      "state": {
        "pos": {
          "x": 300,
          "y": 615
        },
        "length": 420,
        "thickness": 30,
        "angleDeg": 0,
        "unit": "cm",
        "minorStep": 0.1,
        "majorEvery": 50,
        "showTicks": true,
        "showNumbers": true,
        "showMeasure": false,
        "showEntityMarkers": false,
        "entityMarkersSelectedOnly": false,
        "commonGraduation": false,
        "fillColor": "#f1f5f9",
        "strokeColor": "#64748b",
        "opacity": 0.88,
        "locked": true
      }
    },
    {
      "id": 5,
      "type": "ObservationVariables",
      "state": {
        "pos": {
          "x": 820,
          "y": 260
        },
        "width": 420,
        "height": 205,
        "title": "实时测量 · 浸没的长方体",
        "accentColor": "#087e8b",
        "fontSize": 14,
        "compactMode": false,
        "locked": true,
        "editIndex": 0,
        "insertSourceId": "",
        "insertMode": "",
        "definitions": [
          {
            "id": "reading_displaced_ml",
            "name": "displaced_ml",
            "label": "排开液体体积 / mL",
            "expression": "ref_1_liquid_displaced_volume * 1000000",
            "visible": true
          },
          {
            "id": "reading_buoyancy",
            "name": "buoyancy",
            "label": "液体对物体的浮力 / N",
            "expression": "ref_1_liquid_total_buoyancy",
            "visible": true
          },
          {
            "id": "reading_density",
            "name": "density",
            "label": "液体密度 / (kg/m³)",
            "expression": "ref_1_liquid_density",
            "visible": true
          },
          {
            "id": "reading_surface",
            "name": "surface",
            "label": "液面位置 / m",
            "expression": "ref_1_liquid_surface_y",
            "visible": true
          }
        ]
      }
    },
    {
      "id": 91,
      "type": "RichTextEditor",
      "state": {
        "pos": {
          "x": 820,
          "y": 495
        },
        "width": 420,
        "height": 210,
        "text": "**定位测量**\n方块保持锁定。暂停后解锁移动，再锁定并开始，测量少量浸入、半浸与全浸。\n\n**记录列**\n浸没比例｜V排 / mL｜F浮 / N\n以当前液面判断浸没比例。",
        "imageDataUrl": "",
        "imageName": "",
        "imageFit": "contain",
        "imagePosition": "top",
        "imageHeight": 92,
        "backgroundColor": "#ffffff",
        "backgroundOpacity": 0.96,
        "textColor": "#17324d",
        "fontSize": 16,
        "fontWeight": 400,
        "fontFamily": "sans-serif",
        "textAlign": "left",
        "lineHeight": 1.5,
        "padding": 16,
        "borderColor": "#cbd5e1",
        "borderWidth": 1,
        "cornerRadius": 8,
        "showBorder": true,
        "locked": true
      }
    },
    {
      "id": 92,
      "type": "RichTextEditor",
      "state": {
        "pos": {
          "x": 540,
          "y": 735
        },
        "width": 1020,
        "height": 125,
        "text": "**对照操作**\n全浸后继续下移，再把液体密度改为 800 或 1200 kg/m³，比较浮力。完成定位测量后，可解锁方块并开始运行，观察其下沉。",
        "imageDataUrl": "",
        "imageName": "",
        "imageFit": "contain",
        "imagePosition": "top",
        "imageHeight": 92,
        "backgroundColor": "#ffffff",
        "backgroundOpacity": 0.96,
        "textColor": "#17324d",
        "fontSize": 16,
        "fontWeight": 400,
        "fontFamily": "sans-serif",
        "textAlign": "left",
        "lineHeight": 1.5,
        "padding": 16,
        "borderColor": "#cbd5e1",
        "borderWidth": 1,
        "cornerRadius": 8,
        "showBorder": true,
        "locked": true
      }
    }
  ]
}
