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:
$ space initspace 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.
| Template | What it shows |
|---|---|
hello-world | One service that prints one line. The quickstart walks through it. |
frame-filter | Three 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-web | The frame-filter project with a web service that draws the picture and the filter's decision in your browser. |
unikraft-hello-world | A Unikraft unikernel built from a multi-stage Dockerfile, the unikernel counterpart of hello-world. |
model-hotspot | A 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.