Aphelion Editor is a desktop, node-based video compositor for building, previewing, and exporting procedural video projects. It combines a node graph, timeline, media pool, viewport, property inspector, audio playback, tracking tools, and an extensible plugin system in one application.
Current version: 0.1.2
Runtime: Python 3.11+
Status: Active development
- Node-based video compositing with generators, filters, transforms, color, keying, roto, tracking, timing, distortion, stylization, logic, and math nodes.
- Real-time preview with decode-time scaling, frame caching, adaptive quality, frame dropping, background prefetch, and editing proxies.
- Timeline editing with playback, scrubbing, in/out points, clip timing, and keyframed properties.
- Video, image, and audio inputs with Viewer output and audio-aware graph evaluation.
- Point tracking, planar tracking, corner pinning, roto tools, chroma keying, depth workflows, and VFX utilities.
- MP4 and PNG-sequence export from the active Viewer.
.aphproject files with recent-project launch and autosave support.- Plugin support through the sibling
aphelion-sdkpackage.
- Python
3.11or newer - A C compiler and Python development headers for the required native backend
- Windows, macOS, or Linux
- FFmpeg supplied through
imageio-ffmpegfor media I/O
Runtime dependencies include PyQt6, NumPy, OpenCV, imageio, imageio-ffmpeg,
sounddevice, and cryptography. The editable development install also resolves
the sibling aphelion-sdk and aphelion-styling packages.
Source builds require the editor, SDK, and styling repositories as siblings. From your workspace directory:
git clone https://github.com/aphelion-engine/aphelion-sdk.git
git clone https://github.com/aphelion-engine/aphelion-styling.git
git clone https://github.com/aphelion-engine/aphelion-editor.git
cd aphelion-editor
python -m venv .venvActivate the environment:
# Windows PowerShell
.\.venv\Scripts\Activate.ps1# macOS or Linux
source .venv/bin/activateInstall the editor with development and packaging tools:
python -m pip install --upgrade pip
python -m pip install -e ../aphelion-sdk -e ../aphelion-styling -e ".[dev,freeze]"For a source environment without development or packaging tools, use:
python -m pip install -e ../aphelion-sdk -e ../aphelion-styling -e .The editable install is recommended because it also installs the sibling SDK and styling packages required by the source tree.
python main.pyThe source launcher builds or verifies the native backend before starting the
application. The launch screen can create a project, open an .aph project,
or restore a recent project.
The default new project is 1920x1080 at 30 FPS with a 10-second timeline.
If the package is installed, the console entry point is also available:
aphelion
aphelion --versionLarge HEVC, 10-bit, HDR, and high-frame-rate sources may not decode in real time directly from the original file. Aphelion prepares editing proxies and keyframe indexes in the background when media is added. Playback uses the proxy when it is ready; exports continue to use the original source.
For difficult media, open Preferences > Performance and use the low-lag settings. Lower preview and proxy resolutions reduce decode and graph cost without changing export resolution. The performance overlay reports displayed FPS, preview dimensions, cache usage, and render timing.
You can benchmark a source without opening the UI:
python main.py --benchmark-playback path/to/video.mov
python main.py --benchmark-playback path/to/video.mov --benchmark-frames 120# Launch the editor
python main.py
# Build a standalone frozen application
python main.py --build
# Build a Windows MSI installer
python main.py --build-installer
# Choose an output directory for a build
python main.py --build-dir path/to/output --build
# Print the installed version
aphelion --versionPackaging details are documented in docs/packaging.md.
Run the test suite from aphelion-editor/:
python -m pip install -e ".[dev]"
pytestRun type checking when the development toolchain is installed:
mypyUseful development diagnostics:
- Application logs:
logs/aphelion.log - In-app log dock:
Ctrl+Shift+L - Playback benchmark:
python main.py --benchmark-playback <media> - Native backend check:
python native/build.py --check
The project keeps UI code in src/ui/ and Qt-free application logic in
src/core/. Media decoding and rendering live primarily in src/render/.
Public plugins should use aphelion_sdk rather than importing internal editor
modules.
The native backend is required for normal source-tree launches and is built
from native/:
python native/build.py --check
python native/build.py
python native/build.py --cleanSee native/README.md for compiler requirements and the native correctness contract.
| Guide | Description |
|---|---|
| Getting started | Installation and first launch |
| User guide | Workspace, graph, timeline, and export |
| Playback performance | Proxies, adaptive preview, and diagnostics |
| VFX tools | Tracking, roto, and compositing workflows |
| Plugins | Plugin locations, loading, and reloads |
| Architecture | Packages, boot process, and frame pipeline |
| Development | Tests, typing, and logging |
| Packaging | Standalone builds and Windows MSI packaging |
| Plugin SDK | Public plugin development |
See CONTRIBUTING.md for source setup, SDK and styling dependencies, validation, and the pull request process. Participants follow the Code of Conduct. Use the issue forms to report bugs or propose features; pull requests include a review template.
aphelion-editor/
src/ Application packages: core, render, UI, plugins, and utilities
native/ Required C acceleration backend
plugins/ Bundled plugin modules
tests/ Automated tests
docs/ User, developer, and packaging documentation
main.py Source-tree launcher
Aphelion Editor is licensed under the MIT License. Dependencies, including the separately maintained SDK and styling packages, retain their own licenses; this license applies to the editor repository.