# Nebula Parallax Controller — Free

A small MIT controller for three horizontal background layers. Bring your own licensed PNGs; use the original runtime-generated gradient/checker/stars demo to see how the layers move. **No Nebula pack artwork is included.**

Tested with **Godot 4.5, Compatibility renderer**. Horizontal scrolling only. AI assistance was used for code and documentation; runtime placeholder graphics are generated from the included code.

## Try it

Open `project.godot` in Godot 4.5 and press F6 on `addons/nebula_backdrop/demo/demo.tscn`, or F5. Change speed, camera mode/position, brightness, pause and reduced motion. These are real controller inputs. Reduced motion holds the current frame; it does not follow a system preference automatically.

## Install in your project

1. Copy `addons/nebula_backdrop/` into your project. No plugin needs enabling.
2. Put `backdrop.tscn` in a `CanvasLayer` behind gameplay, for example with layer `-10`.
3. Create a new `NebulaBackdropPreset` resource and assign **three textures with identical dimensions**. Foreground layers can have transparency. For smooth wrap, use horizontally tileable images. Save the resource and assign it to the backdrop's `preset` property.
4. Set `speed` in source-image pixels/second, or use camera input:

```gdscript
@onready var backdrop: NebulaBackdrop = $CanvasLayer/NebulaBackdrop

func _process(_delta: float) -> void:
    backdrop.motion_mode = NebulaBackdrop.MotionMode.CAMERA_INPUT
    # Pass horizontal position in source-image pixels, not screen pixels.
    backdrop.set_camera_position(Vector2($Camera2D.global_position.x, 0.0))
```

`layer_depths` defaults to `(0.2, 0.5, 1.0)`. `brightness` dims RGB while preserving the source alpha. `paused` and `reduced_motion` hold the visible frame. The draw area scales to cover the viewport without changing image proportions; some cropping can occur. There is no vertical/world-space camera system or automatic camera connection.

The class names and addon path match the existing Nebula Backdrop Kit. **Install one copy only**; do not place a second copy under another directory in the same project.

## Optional artwork and finished presets

- [Free Parallax artwork](https://nebulakit.itch.io/nebula-parallax-vol1) — separate artwork licence; downloaded art is not covered by this MIT licence.
- [Nebula Backdrop Godot kit, $1.49](https://nebulakit.itch.io/nebula-backdrop-godot) — finished presets and artwork are separate from this placeholder demo.
- [Motion pack and free sampler, $3 full pack](https://nebulakit.itch.io/nebula-motion-vol1) — rendered video loops for compatible video workflows; this controller does not play or import them.

The addon works without buying anything or using any external account, service or customer data. No external files are fetched by the demo.

## Licence and source

MIT, copyright 2026 Omri Amdursky / NebulaKit. Keep the included `LICENSE` with redistributed code. See `verification/source-provenance.json` for the two unchanged controller scripts adapted from the existing MIT kit and the new demo material. Placeholder generation code and its runtime output are included under MIT; existing Nebula pack PNGs and licences are not included.
