---
title: CAEmitterLayer
framework: quartzcore
role: symbol
role_heading: Class
path: quartzcore/caemitterlayer
---

# CAEmitterLayer

A layer that emits, animates, and renders a particle system.

## Declaration

```swift
class CAEmitterLayer
```

## Overview

Overview The particles, defined by instances of CAEmitterCell, are drawn above the layer’s background color and border. The following code shows how to set up a simple point (the default emitterShape is point) particle emitter. It uses an image named RadialGradient.png as the cell contents and, by setting the emitter cell’s emissionRange to 2 × pi, the particles are emitted in all directions. let emitterLayer = CAEmitterLayer()      emitterLayer.emitterPosition = CGPoint(x: 320, y: 320)      let cell = CAEmitterCell() cell.birthRate = 100 cell.lifetime = 10 cell.velocity = 100 cell.scale = 0.1      cell.emissionRange = CGFloat.pi * 2.0 cell.contents = UIImage(named: "RadialGradient.png")!.cgImage      emitterLayer.emitterCells = [cell]      view.layer.addSublayer(emitterLayer)

## Topics

### Specifying Particle Emitter Cells

- [emitterCells](quartzcore/caemitterlayer/emittercells.md)

### Emitter Geometry

- [renderMode](quartzcore/caemitterlayer/rendermode.md)
- [emitterPosition](quartzcore/caemitterlayer/emitterposition.md)
- [emitterShape](quartzcore/caemitterlayer/emittershape.md)
- [emitterZPosition](quartzcore/caemitterlayer/emitterzposition.md)
- [emitterDepth](quartzcore/caemitterlayer/emitterdepth.md)
- [emitterSize](quartzcore/caemitterlayer/emittersize.md)

### Emitter Cell Attribute Multipliers

- [scale](quartzcore/caemitterlayer/scale.md)
- [seed](quartzcore/caemitterlayer/seed.md)
- [spin](quartzcore/caemitterlayer/spin.md)
- [velocity](quartzcore/caemitterlayer/velocity.md)
- [birthRate](quartzcore/caemitterlayer/birthrate.md)
- [emitterMode](quartzcore/caemitterlayer/emittermode.md)
- [lifetime](quartzcore/caemitterlayer/lifetime.md)
- [preservesDepth](quartzcore/caemitterlayer/preservesdepth.md)

### Constants

- [Emitter Shape](quartzcore/emitter-shape.md)
- [Emitter Modes](quartzcore/emitter-modes.md)
- [Emitter Render Order](quartzcore/emitter-render-order.md)

## Relationships

### Inherits From

- [CALayer](quartzcore/calayer.md)

### Conforms To

- [CAMediaTiming](quartzcore/camediatiming.md)
- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Particle Systems

- [CAEmitterCell](quartzcore/caemittercell.md)
