Skip to content

Start from a template

A first payload project usually has the shape of one already written. A camera service captures the ground beneath the spacecraft. A filter service decides which parts of each picture are worth sending down, and a downlink service queues them for the radio. space init writes such a project from a template, so you start from a build that works and change one service at a time.

List the templates

Run space init without a name to list the templates your CLI ships with:

Terminal window
$ space init
space init: name a template.
These templates ship with this build:
hello-world
frame-filter
hello-web
unikraft-hello-world
model-hotspot
Run `space init hello-world`.
help: `space init <name>` downloads parsimoni-labs/<name>
help: `space init <org>/<name>` names another organization
[123]

Each template below is one step from the smallest project toward a payload application.

TemplateWhat it shows
hello-worldOne service that prints one line. The quickstart walks through it.
frame-filterThree services in one partition. camera captures the ground beneath the spacecraft in squares of 16 by 16 samples. filter keeps the squares worth sending down, and downlink queues them for the next pass over a ground station. space run boots the project with a simulated orbit and scene behind the spacecraft's bus.
hello-webThe frame-filter project with a web service that draws the picture and the filter's decision in your browser.
unikraft-hello-worldA Unikraft unikernel built from a multi-stage Dockerfile, the unikernel counterpart of hello-world.
model-hotspotA camera and a classify service that scores each square with model weights the project names by digest.

Write a project

Name the template. space init frame-filter writes the project into a new frame-filter/ directory and prints the command to run next. Each template's README.md walks through its own services and output.

A short name resolves in the parsimoni-labs namespace, so frame-filter names parsimoni-labs/frame-filter. Name <org>/<name> to use a template from another organization. space init downloads a template into a cache on your computer the first time you name it and writes from that cache afterward, with no network. --dir writes the project into another directory, and space init never overwrites an existing file.

Continue with Port a Linux app to bring your own service into the project.