{
  "format_version": "1.21.60",
  "particle_effect": {
    "description": {
      "identifier": "minecraft:cherry_leaves_particle",
      "basic_render_parameters": {
        "material": "particles_alpha",
        "texture": "textures/particle/cherry_petal_atlas"
      }
    },
    "components": {
      "minecraft:emitter_initialization": {
        "creation_expression": "v.gravity = -0.18; v.wind_drift = 3.2; v.float_duration = 18; v.swirl_speed = 35; v.petal_size = math.random(0.16, 0.22);"
      },
      "minecraft:emitter_rate_manual": {
        "max_particles": 1200
      },
      "minecraft:emitter_lifetime_expression": {
        "activation_expression": 1
      },
      "minecraft:emitter_shape_box": {
        "offset": [
          0.5,
          0.05,
          0.5
        ],
        "half_dimensions": [
          0.55,
          0.08,
          0.55
        ],
        "direction": [
          "math.random(-0.08, 0.08)",
          -0.4,
          "math.random(-0.08, 0.08)"
        ]
      },
      "minecraft:particle_lifetime_expression": {
        "max_lifetime": "16 + v.particle_random_1 * 6"
      },
      "minecraft:particle_expire_if_in_blocks": [
        "minecraft:water",
        "minecraft:lava",
        "minecraft:flowing_water",
        "minecraft:flowing_lava"
      ],
      "minecraft:particle_initial_spin": {
        "rotation": "v.particle_random_2 * 360",
        "rotation_rate": "math.random(-25, 25) * (v.particle_random_3 > 0.5 ? 1.15 : 0.85)"
      },
      "minecraft:particle_initial_speed": [
        "math.random(-0.015, 0.015)",
        -0.01,
        "math.random(-0.015, 0.015)"
      ],
      "minecraft:particle_motion_dynamic": {
        "linear_acceleration": [
          "math.cos(v.swirl_speed * v.particle_random_3 + v.particle_age * 2.2) * v.wind_drift * math.pow(math.min(v.float_duration, v.particle_age) / v.float_duration, 0.85)",
          "v.gravity * (0.9 + v.particle_random_1 * 0.2)",
          "math.sin(v.swirl_speed * v.particle_random_3 + v.particle_age * 2.2) * v.wind_drift * math.pow(math.min(v.float_duration, v.particle_age) / v.float_duration, 0.85)"
        ],
        "rotation_acceleration": "math.lerp(-4.2, 4.2, v.particle_random_4) * (1 + math.cos(v.particle_age * 0.6) * 0.25)"
      },
      "minecraft:particle_appearance_billboard": {
        "size": [
          "v.petal_size",
          "v.petal_size"
        ],
        "facing_camera_mode": "lookat_xyz",
        "uv": {
          "texture_width": 40,
          "texture_height": 32,
          "uv": [
            "math.floor(v.particle_random_1 * 5) * 8",
            "math.floor(v.particle_random_2 * 4) * 8"
          ],
          "uv_size": [
            8,
            8
          ]
        }
      },
      "minecraft:particle_motion_collision": {
        "collision_drag": 7,
        "collision_radius": 0.07,
        "expire_on_contact": true
      },
      "minecraft:particle_appearance_lighting": {},
      "minecraft:particle_appearance_tinting": {
        "color": [
          1,
          0.98,
          1,
          "math.lerp(0.8, 1.0, math.clamp((v.float_duration - v.particle_age) / 2.5, 0, 1))"
        ]
      }
    }
  }
}