Pretrained computer vision classifier

Identify moons with one API call.

A pretrained moons classifier that sorts an image into one of 10 categories — what type of moon phase it is. Use the moons API immediately, no training required, then adapt it to your own data when you need more.

Pretrained · Nyckel-trained 10 labels out of the box Image input

Try the moons classifier

Drop in a photo and get the prediction back. No signup, no setup.

What this moons classifier recognizes

A sample of the 31 labels this pretrained classifier chooses between.

Ariel
Callisto
Ceres
Charon
Deimos
Dione
Enceladus
Eris
Europa
Ganymede

Need a label that isn't here? Clone the classifier into your Nyckel console and edit the label set to fit your data.

Call the moons API

Once you've added this classifier to your console, you get your own copy of it behind your own endpoint. Invoke it with any HTTP client:

curl

curl -X POST "https://www.nyckel.com/v1/functions/YOUR_FUNCTION_ID/invoke" \
  -H "Authorization: Bearer $NYCKEL_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"data": "https://example.com/photo.jpg"}'

Python

import requests

# Get an access token: https://www.nyckel.com/docs/api/overview/authentication/
token = "YOUR_ACCESS_TOKEN"

response = requests.post(
    "https://www.nyckel.com/v1/functions/YOUR_FUNCTION_ID/invoke",
    headers={"Authorization": "Bearer " + token},
    json={"data": "https://example.com/photo.jpg"},
)
print(response.json())

Example response

{
  "labelName": "Ariel",
  "labelId": "label_...",
  "confidence": 0.92
}

Under the hood

Model type
Nyckel-trained

Trained on a Nyckel-curated dataset covering 10 moons categories, served on Nyckel's own infrastructure — your image stays on Nyckel.

Input
Image

Send an image URL or file to the invoke endpoint; the response is a label with a confidence score.

Make it yours
Adaptable

Clone it, then correct predictions and add your own samples in the console — Nyckel retrains automatically, turning this into a custom model tuned to your data.

More than a demo: this page is one of thousands of pretrained functions on Nyckel, an ML classification platform. You can invoke classifiers by API, review predictions, correct labels, collect samples from production traffic, and promote any pretrained function to a private custom model — without changing your integration.

Where teams use moons classification

Astronomy Classroom Activities

Teachers can use this function to turn moon identification into interactive exercises. Students can submit images and immediately see which moon the model predicts, helping reinforce lessons on planetary systems.

Planetarium and Museum Kiosks

Science museums and planetariums can power touch-screen exhibits where visitors explore and identify moons from curated images. This creates a hands-on learning loop with instant feedback.

Amateur Astrophotography Workflows

Hobbyists can use the model to help label captures from observing sessions. It can speed up organizing large image sets before post-processing or sharing online.

Observatory Dataset Organization

Research teams can use this identifier as a pre-labeling step when sorting moon imagery for analysis. Faster triage reduces manual review time and improves downstream curation.

Science Media Asset Tagging

Editors and content teams can auto-tag moon images in article and video pipelines. Better metadata makes search, reuse, and publishing workflows more reliable.

Citizen Science Projects

Community science programs can use the model to help participants annotate image collections consistently. This supports cleaner data contributions for collaborative astronomy projects.

Space Education Apps

Developers can integrate moon identification into educational apps and quizzes. Learners get immediate, image-based feedback while exploring satellites across the solar system.

Common questions

What's the difference between a zero-shot and a Nyckel-trained classifier?

A zero-shot classifier uses a large foundation model's general knowledge to pick between your labels — no task-specific training, so new or edited labels work immediately. A Nyckel-trained classifier has been trained on labeled examples and runs on Nyckel's own infrastructure, which typically makes it faster, cheaper per call, and more accurate on data that resembles its training set. The "Under the hood" section on this page shows which kind this classifier is, and any classifier can be adapted into a trained one by adding your own examples.

How do I know whether this will work for my application?

Honestly: we can't know in advance — it depends on your data stream and how closely it resembles what this classifier has seen. The reliable way to find out is to measure it on your own data: start invoking the classifier with real traffic, or upload and annotate a set of images in the console — make sure they look like your production data, not idealized examples. Nyckel's evaluation metrics then show you exactly how it performs on that data before you rely on it.

What happens when it makes a mistake?

No classifier is perfect, so Nyckel is built around the correction loop: invokes can be captured for review, you confirm or correct predictions in the console, and corrections become training data. Over time the model adapts to your data distribution — accuracy on your traffic improves with use rather than staying fixed.

Do I need training data to get started?

No. This moons classifier works out of the box — clone it into your console and you'll have your own API endpoint in under a minute. Training data only enters the picture when you want to adapt it: your corrected predictions and uploaded samples improve the model, and you can also edit the label set to match your needs.

What does it cost to try?

Trying the classifier on this page is free with no signup. Cloning it requires a free account, and the free tier covers your first API calls each month — see nyckel.com/pricing for current limits and paid tiers.

Ready to classify moons at scale?

Add this pretrained classifier to your Nyckel console — you'll get a live API endpoint in under a minute, and a path to a custom model when you need one.