Link Search Menu Expand Document

Atmosphere

You can provide your scenes with a sense of atmosphere by adding features that enhance your scene, such as: terrain, water, weather, background sounds, and other particle effects.

VR-only effects will render in VR (desktop or headset), but not in AR, since the real world environment should take precedence to provide terrain and sky:

AR/VR (full XR) effects are useful in any scene:

Environment & Presets

ARENA provides the aframe-environment-component to render VR scene terrain by default, and it includes dozens of parameters. Some preset parameters are included as recipes, see the forest preset below.

{
  "object_id": "scene-options",
  "type": "scene-options",
  "data": {
    "env-presets": {
      "active": true,
      "preset": "forest"
    }
  }
}

Sky, Ground, Fog

Many of these parameters can be individually adjusted to your needs, see the env-presets section of our scene-options schema.

{
  "object_id": "scene-options",
  "type": "scene-options",
  "data": {
    "env-presets": {
      "active": true,
      "preset": "none",
      "dressing": "mushrooms",
      "fog": 0.5,
      "ground": "hills",
      "groundTexture": "walkernoise",
      "lighting": "distant",
      "skyType": "atmosphere"
    }
  }
}

Particle Effects

We include the aframe-spe-particles-component to generate particle effects for weather, fire, fireworks, and more. Many of these effects from that component’s examples are on display in our particles demo scene.

Some examples of rain, snow, dust, water, and ambient sounds can be experienced in our weather demo scene.

Rain

This rain example is translated from the rain preset of aframe-particle-system-component.

{
  "object_id": "rain",
  "type": "object",
  "data": {
    "object_type": "entity",
    "spe-particles": {
      "rotation": 3.14,
      "particleCount": 1000,
      "texture": "static/images/textures/raindrop.png",
      "positionSpread": { "x": 100, "y": 100, "z": 100 },
      "acceleration": { "x": 0, "y": 3, "z": 0 },
      "accelerationSpread": { "x": 2, "y": 1, "z": 2 },
      "velocitySpread": { "x": 10, "y": 50, "z": 10 },
      "velocity": { "x": 0, "y": 75, "z": 0 },
      "blending": "additive",
      "color": ["#ffffff"],
      "maxAge": 1,
      "size": [0.4]
    }
  }
}

Snow

This snow example is translated from the snow preset of aframe-particle-system-component.

{
  "object_id": "snow",
  "type": "object",
  "data": {
    "object_type": "entity",
    "spe-particles": {
      "rotation": 3.14,
      "texture": "static/images/textures/smokeparticle.png",
      "particleCount": 200,
      "positionSpread": { "x": 100, "y": 100, "z": 100 },
      "acceleration": { "x": 0, "y": 0, "z": 0 },
      "accelerationSpread": { "x": 0.2, "y": 0, "z": 0.2 },
      "velocitySpread": { "x": 2, "y": 0, "z": 2 },
      "blending": "additive",
      "color": ["#ffffff"],
      "velocity": { "x": 0, "y": 8, "z": 0 },
      "maxAge": 20
    }
  }
}

Dust

This dust example is translated from the dust preset of aframe-particle-system-component.

{
  "object_id": "dust",
  "type": "object",
  "data": {
    "object_type": "entity",
    "spe-particles": {
      "rotation": 3.14,
      "texture": "static/images/textures/smokeparticle.png",
      "particleCount": 100,
      "positionSpread": { "x": 100, "y": 100, "z": 100 },
      "acceleration": { "x": 0, "y": 0, "z": 0 },
      "accelerationSpread": { "x": 0, "y": 0, "z": 0 },
      "velocitySpread": { "x": 0.5, "y": 1, "z": 0.5 },
      "velocity": { "x": 1, "y": 0.3, "z": 1 },
      "color": ["#ffffff"],
      "blending": "additive",
      "maxAge": 20
    }
  }
}

Fire

Multiple particle effects can be combined to create an effect like fire, as in this smoke, sparks, and flames example from our classic render demo scene.

{
  "object_id": "smoke",
  "type": "object",
  "data": {
    "object_type": "entity",
    "spe-particles": {
      "texture": "static/images/textures/fog.png",
      "velocity": { "x": 0.4, "y": 2, "z": 0 },
      "velocitySpread": { "x": 1.4, "y": 0, "z": 1.4 },
      "particleCount": 50,
      "maxAge": 4,
      "size": [8, 16],
      "opacity": [0, 1, 0],
      "color": ["#666", "#222"]
    }
  }
}
{
  "object_id": "sparks",
  "type": "object",
  "data": {
    "object_type": "entity",
    "spe-particles": {
      "texture": "static/images/textures/square.png",
      "color": ["yellow", "red"],
      "particleCount": 10,
      "maxAge": 0.5,
      "maxAgeSpread": 0.4,
      "velocity": { "x": 0, "y": 5, "z": 0 },
      "velocitySpread": { "x": 0, "y": 3, "z": 0 },
      "wiggle": 1,
      "wiggleSpread": 5,
      "emitterScale": 50,
      "sizeSpread": [0.5],
      "randomizeVelocity": true
    }
  }
}
{
  "object_id": "flames",
  "type": "object",
  "data": {
    "object_type": "entity",
    "spe-particles": {
      "texture": "static/images/textures/explosion_sheet.png",
      "textureFrames": { "x": 5, "y": 5 },
      "velocity": { "x": 0.4, "y": 0.1, "z": 0 },
      "acceleration": { "x": 0, "y": 2, "z": 0 },
      "accelerationSpread": { "x": 0, "y": 2, "z": 0 },
      "velocitySpread": { "x": 0.4, "y": 0, "z": 0.4 },
      "particleCount": 15,
      "maxAge": 1,
      "size": [4, 8],
      "sizeSpread": [2],
      "opacity": [1, 0],
      "wiggle": 0,
      "blending": "additive"
    }
  }
}

Water

We include the aframe-extras library, so you can make use of the ocean primitive to create water.

{
  "object_id": "ocean",
  "type": "object",
  "data": {
    "object_type": "ocean",
    "width": 100,
    "depth": 100,
    "color": "#7ad2f7",
    "rotation": { "w": -0.70711, "x": 0.70711, "y": 0, "z": 0 },
    "amplitude": 1,
    "opacity": 1
  }
}

Sounds

The a-frame sound component is a great way to create an ambient sound atmosphere for your scene.

{
  "object_id": "ambiance",
  "type": "object",
  "data": {
    "object_type": "entity",
    "sound": {
      "src": "store/users/wiselab/audio/ocean.mp3",
      "positional": false,
      "loop": true,
      "autoplay": true,
      "volume": 0.1
    }
  }
}