Guide

How to build a space sim and submit it to the ORBIT galaxy.

What counts as a sim?

To be defined as a sim, your project needs to be:

Your sim doesn't need to be super complicated or impressive.

Optional: add a button or link somewhere in your sim that points back to the ORBIT galaxy.
Hour Tracking: We use Hackatime to track how long you spend coding. The number of hours of quality work determine the prizes you get!
Explore the Galaxy

Recommended libraries

These are just some suggestions if you are a beginner. You can use whatever you want to make your sim!


Starter tutorial

Guides you through how to make a simple sim that gets a planet to orbit your cursor. This takes about an hour.

1. Set up your files

Create a folder with two files:

index.html 
script.js

In index.html:

This just loads p5.js, (the drawing library) and your js file.

2. Set up the canvas

In sketch.js, start with the variables and setup:

3. Add gravity

Now the draw() function, which will run once per frame:

4. Damping (optional)

5. Draw everything

Open index.html in your browser. You should see a blue planet orbiting your cursor!

6. Make it yours!

Sims that match the tutorial project won't be accepted! It needs to be unique in some way. Here are some ideas:


Deployment

Your sim needs a public URL so anyone can open it. The easiest way is GitHub Pages, although it won't work if you have server-side code (PHP, Python, etc.).

If you need a new repo:

  1. Click the + in the top-right of GitHub and select New repository
  2. Name it whatever you want
  3. Make sure the visibility is set to Public
  4. Click Create repository and upload your code to it

Enable GitHub Pages:

  1. In your repo, go to Settings
  2. In the sidebar under "Code and automation", click Pages
  3. Under "Build and deployment", set the source to Deploy from a branch
  4. Select main and / (root), then click Save
  5. Wait a few minuites, then go to yourusername.github.io/repo-name to see your site!
Tip: Make sure your main html file is called index.html and is in the root (outside of any folders) of the repo. GitHub Pages looks for this file there.

Other hosting options work too, examples include Vercel, Netlify and Cloudflare Pages.


Submission

When your sim is live and you're ready to submit:

  1. Fork the ORBIT repo
  2. Open projects.json
  3. Add your project to the array:

Field reference:

Adding a screenshot:

There are a couple of easy ways to get a hosted image URL:

  1. Open a pull request against main
  2. We'll review it and merge it into the galaxy!

Resources


FAQ

Am I eligible?

If you're a teenager aged 13-18 (inclusive), yes!

This seems too good to be true, is Hack Club legit?

Yes! Hack Club is a legitimate 501(c)(3) nonprofit that has been supporting teenage coders since 2014. Previous You Ship, We Ship programmes include Sprig, OnBoard, and Blot

Is it free to participate?

Yes, completely free. You build something, we ship you prizes!

Can I use a game engine like Unity or Godot?

Yes, as long as the final result runs in a browser at a public URL. Godot exports to web. Unity's WebGL export can work too.

Does my project need to be open source?

Yes, your code needs a public GitHub repo.

I'm stuck and nothing works, how can I get help?

Post in the #orbit channel on the Hack Club Slack.