Current project Maintained by Neoground

Open-source project · Observation

Infinity Sky

An open-source all-sky camera system for Raspberry Pi that captures the changing sky on a schedule, archives the images, adapts exposure between day and night, and produces daily timelapses and keograms.

  • Raspberry Pi
  • Camera
  • Astronomy
Latest release
v1.0
License
MIT
Built for
RPi 4+, PHP 8.4+
InfinitySky all-sky camera interface with a wide-angle sky image, capture timeline, daily timelapse, and keogram
v1.0 Early open-source all-sky camera system for Raspberry Pi

Open-source all-sky imaging

Turn a Raspberry Pi and wide-angle camera into a continuous record of the sky.

InfinitySky automates the repetitive work behind a private all-sky camera. It captures the sky at regular intervals, stores and processes the resulting images, adjusts the capture behavior for changing daylight, and develops each day into visual records that are easier to explore. The project already runs as a practical observation system, but remains an early public release. Installation, camera compatibility, the web interface, documentation, and operational safeguards still require further refinement. It is best suited to technically capable users who are comfortable operating and improving an evolving Raspberry Pi project.

What it solves
Provide a self-hosted foundation for continuous wide-angle sky imaging, local media archiving, daily timelapse generation, and keogram production.
Where it fits
Private observatories, weather stations, astronomy projects, meteor and cloud observation, educational installations, experimental imaging systems, and technically operated all-sky cameras.

Core capabilities

Designed around the work the project needs to perform.

01 · Continuous observation

Capture the changing sky automatically throughout the day and night.

InfinitySky runs the camera on a recurring schedule and archives each image as part of a continuous local record. The default workflow captures a new frame every five minutes, allowing clouds, changing light, stars, weather transitions, and occasional events to be reviewed later without operating the camera manually.

InfinitySky capture sequence showing recurring wide-angle sky images across day, twilight, and night
02 · Day-aware camera control

Adapt the imaging process to the changing conditions above the camera.

The capture workflow distinguishes between different periods of the day and can adjust exposure behavior accordingly. Combined with a wide-angle or 180-degree lens, this provides a broad view of the sky without treating bright daylight, twilight, and darkness as identical imaging conditions.

InfinitySky exposure workflow adapting an all-sky camera between daylight, twilight, and night
03 · A whole day in one view

Generate timelapses and keograms from the archived observations.

Individual captures become more useful when they can be read as a sequence. InfinitySky creates daily timelapse videos and keograms that compress hours of movement into concise visual records of clouds, light, stars, and other changes across the sky.

InfinitySky processing archived sky images into a daily timelapse and vertical keogram

Additional capabilities

A practical foundation with useful depth.

01

Scheduled sky capture

Capture a wide-angle image at recurring intervals without manually operating the camera throughout the day.

02

Automatic local archive

Store and organize the generated images on the InfinitySky host as a continuous visual observation record.

03

Day and night exposure logic

Apply different imaging behavior according to the time of day rather than relying on one fixed exposure approach for every condition.

04

Daily timelapse generation

Turn the archived image sequence into a compact video showing how the sky developed over the course of the day.

05

Automatic keograms

Reduce a sequence of sky images into a visual time strip that makes cloud movement, brightness changes, and celestial motion easier to compare.

06

Wide-angle lens support

Use the system with a suitable fisheye or 180-degree lens to capture as much of the visible sky as the camera installation allows.

07

Raspberry Pi Camera support

Operate the current implementation with documented Raspberry Pi Camera V2 and V3 configurations through the libcamera-based capture environment.

08

Local web interface

Review the available InfinitySky interface through a web server on the Raspberry Pi or another configured host.

09

Configuration overrides

Keep the distributed defaults separate from installation-specific changes by placing local overrides in the user configuration.

010

Automated background operation

Run capture and processing tasks as part of a persistent Linux installation rather than starting each observation manually.

011

Self-hosted media

Keep the camera, processing pipeline, generated images, videos, and visual records under the operator's own control.

012

Open-source foundation

Inspect, adapt, and contribute to the MIT-licensed PHP, Twig, Python, shell, JavaScript, and configuration code.

Screenshots

The project in use.

Current release

Install the current early release from the public repository.

InfinitySky does not yet have a formal packaged GitHub release. The current public implementation is distributed through the main repository branch and should be treated as evolving software. The core workflow can operate reliably in a suitable installation, but compatibility is not yet broad or fully standardized. Breaking changes, incomplete controls, manual migration work, and installation-specific fixes remain possible. Back up the configuration and media archive before updating, and test changes before relying on them for unattended long-term observation.

Version
v1.0
Released
Requirements
RPi 4+, PHP 8.4+

Support open work

Help turn a working all-sky system into a stronger open-source platform.

InfinitySky already provides the foundation for continuous local sky imaging, but meaningful open-source development remains ahead. Support helps fund camera testing, installation improvements, processing reliability, documentation, interface work, compatibility reviews, issue investigation, and the less visible maintenance needed for long-running Raspberry Pi systems. The community can also help by documenting working hardware combinations, testing updates, improving setup instructions, reporting reproducible problems, contributing focused fixes, and sharing representative non-sensitive output from real installations.

Project questions

Before you adopt or contribute.

What exactly is InfinitySky?

InfinitySky is a self-hosted open-source system for operating an all-sky camera. It coordinates scheduled image capture, local archiving, image processing, daily timelapse generation, keogram creation, configuration, and a local web interface. It is not a camera, weather station, commercial observatory appliance, cloud service, or complete astronomy-analysis platform by itself.

How mature is the project?

InfinitySky is an active early-stage project. Its central capture and processing workflow can run stably in the environment for which it has been developed, but the public project still requires broader testing, installation hardening, additional camera support, interface work, documentation, and compatibility improvements. It should not yet be treated as a finished plug-and-play product or as a guaranteed unattended observation platform for every Raspberry Pi and camera combination.

Is there a stable versioned release?

Not yet. The public GitHub repository currently provides the working source through its main branch, but no formal GitHub release has been published. Users should review the latest commits and issues before installing or updating rather than assuming that every checkout represents a fixed stable version.

Which Raspberry Pi models are supported?

The project documentation targets Raspberry Pi 3 and Raspberry Pi 4 systems. The published installation notes describe testing on a Raspberry Pi 3B+ running Raspberry Pi OS Lite based on Debian 11. Other models, operating-system versions, architectures, and package combinations may work, but should be treated as unverified until they have been tested and documented.

Which cameras are currently supported?

The documented implementation currently focuses on Raspberry Pi Camera Module V2 and V3 devices through libcamera. Broader libcamera compatibility, USB cameras, and astronomy cameras such as ZWO ASI models are development directions rather than a universal compatibility promise. Review the repository before purchasing hardware specifically for InfinitySky.

Does InfinitySky support a 180-degree lens?

Yes. The project is designed with wide-angle and 180-degree all-sky imaging in mind. Actual coverage, focus, sharpness, distortion, exposure, weather protection, and horizon visibility depend on the camera module, lens, enclosure, and physical installation.

How often does InfinitySky capture an image?

The current public workflow is described around a five-minute capture interval. Review the current configuration and implementation before changing that cadence, because shorter intervals also increase storage use, processing load, heat, and the number of frames used for daily media generation.

How does the day and night exposure behavior work?

InfinitySky uses time-of-day and astronomical context to distinguish between changing light periods and adjust the capture workflow. It should not be assumed to provide the same exposure intelligence, calibration, stacking, noise reduction, or sensor control as specialist astrophotography software. Results remain dependent on the camera, lens, enclosure, local light pollution, weather, and configuration.

What is a keogram?

A keogram is a compact visual representation built from a sequence of sky images. A narrow section from each capture is placed beside the next, creating a time-based image that makes changes in cloud cover, brightness, celestial motion, and other sky conditions easier to inspect across a longer period.

How are daily timelapses created?

InfinitySky processes the archived image sequence with the available media tools and produces a video representing the development of the sky across the day. Timelapse completion depends on a valid image sequence, sufficient storage and processing capacity, and a working FFmpeg installation.

Is the web interface complete?

A local PHP and Twig web application is part of the project, but the interface and configuration experience remain under development. It should currently be understood as an operational project interface rather than a finished consumer dashboard. Additional archive navigation, configuration controls, status information, error handling, and visual refinement may still be added.

What software does the installation require?

The current repository documents a minimal Raspberry Pi or Debian environment with Python 3.9 or newer, PHP 8.2 and the required PHP extensions, libcamera, a web server such as nginx, FFmpeg, ImageMagick, Composer, and the documented Python packages. Package names, PHP-FPM socket paths, permissions, and service configuration may differ between distributions and operating-system versions.

How is InfinitySky installed?

The documented process clones the repository into /opt/infinitysky, runs the included installation script, connects the provided nginx configuration to the local web server, and creates a local configuration override. This is a Linux system installation rather than a one-click desktop application. Review scripts before running them and understand the permissions, packages, services, web paths, and storage locations involved.

How is the project configured?

Distributed defaults are defined in the project configuration. Local changes should be placed in config/user.json using the same structure and only the values that need to be overridden. Keeping installation-specific settings separate reduces the need to edit distributed defaults directly, although updates should still be reviewed for configuration changes.

Where are images and generated media stored?

InfinitySky archives its captures and generated media on the host system. Exact paths and organization depend on the current configuration and implementation. All-sky imaging can produce a substantial amount of data over time. Operators should monitor free space and establish their own retention, backup, synchronization, and recovery policy rather than assuming unlimited automatic storage management.

Can I expose the InfinitySky interface publicly?

The documented setup demonstrates local web access through nginx. Public internet exposure requires additional operational decisions around TLS, authentication, updates, permissions, firewall rules, reverse-proxy configuration, and the privacy of the image archive. Do not assume that an early local dashboard is automatically hardened for direct public access.

Can InfinitySky detect meteors, auroras, or unusual events?

The current public scope centers on recurring capture, archiving, timelapses, and keograms. The image archive may contain meteors, auroras, aircraft, lightning, cloud transitions, or other events, but reliable automatic classification and detection should not be assumed unless a corresponding feature is implemented and documented.

Does InfinitySky provide weather forecasts?

No dependable weather-forecasting feature is part of the current public core. The system records visual sky conditions; forecasting would require separate meteorological data, models, validation, and an appropriate integration.

Can InfinitySky be used with a weather station?

Yes, it can operate alongside a weather station and add a visual record of cloud, light, and sky conditions. The current project should not be assumed to provide a ready-made integration with every weather-station platform or database. Combining images with measured station data may require separate configuration or development.

Is InfinitySky suitable for scientific observations?

It can provide a useful experimental or educational observation record, but the public project does not by itself establish calibrated scientific accuracy. Scientific use requires appropriate optics, sensor calibration, timestamps, environmental control, metadata, repeatability, data preservation, and independent validation for the intended method.

How should I update an existing installation?

Preserve config/user.json, the complete media archive, local code changes, web-server configuration, and service files before updating. Review repository changes before applying them. Because the project remains early, an update may include changed dependencies, configuration structure, paths, templates, or processing behavior.

How can I report a problem?

Use the GitHub issue tracker for reproducible bugs and compatibility reports. Include the Raspberry Pi model, camera module, operating system, Python and PHP versions, installation method, relevant configuration, logs, service status, and example output needed to understand the problem. Remove credentials, private hostnames, location information, and other sensitive values before publishing logs or configuration.

How can I contribute?

Contributions can improve camera compatibility, installation reliability, processing, configuration, the web interface, documentation, testing, migration behavior, and hardware guidance. Open a focused issue or pull request based on the current repository and keep changes compatible with the project license and documented architecture.

What license does InfinitySky use?

InfinitySky is released under the MIT License. Review the repository license and the separate licenses of PHP packages, JavaScript libraries, camera tools, FFmpeg, ImageMagick, system packages, and other dependencies used by the installation.