Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

How to get started in the project

Project Elara is not the work of one person, but the work of a team - and we welcome anyone who wants to work with us to join us. If you’re new to the Project, or interested in participating in it, this part of the Handbook is for you!

If you’re just starting with us, we want to make sure that joining Project Elara is as seamless as possible. And we know it can be quite confusing to start work on any research or open-source project, with bewildering documentation and a lack of a clear beginner’s guide to follow. This is a step-by-step guide to quickly get up to speed and become part of Elara’s mission!

Step 1: Get in touch

We want to make sure that you can get in touch with us. This is especially important so that we can explain things and troubleshoot in case you run into any trouble with the onboarding process! If you’re on Discord, you can join our Discord server by copying our server invite link https://discord.gg/Zr37GyxzDd into your web browser. You can also send an email to either one of the addresses below:

Step 2: Understand the basic onboarding tasks

Before working on the Project, we want to get to know you a little more, and make sure you have access to the main platforms we use below.

New Member Form

There is a New Member Form available to anyone who wants to join. We highly recommend filling this out first. This simply is used so that we can get to know you a little more, and we thank you for providing a little bit about yourself!

Sign up for Codeberg

Project Elara operates much of its research & development on Codeberg, a repository of all our progress so far. We require that members set up an account so that they have easy access to our work. Start by using the link provided - make sure that you use an email so that you feel comfortable with being publicly-visible. For students, please do not use your school email, and make sure to use an email that you will continue to have access to after graduation. Once you have a Codeberg account, please share your Codeberg username with a Project Elara leader, who will then give you write permissions to our repositories.

Installing Git

Git is a tool that we use for collaboration and storing a history of our work, which is immensely useful. We give a short tutorial to using Git at the end of this chapter. If you are unfamiliar with Git, we strongly recommend going through it!

Signing the Licensing Policy

Lastly, we have a Licensing Policy that we would like members to look at and sign. This policy exists to protect our values and keep us dedicated to our mission. It helps us know that you are well-committed and understand our policies. For this reason, we require that all incoming members sign it.

Signing the Charter (Optional)

All members initially start off as associate members, which means that they have the privileges and rights of membership but do not have voting rights or the ability to take a leadership position in the Project. Associate members can become full members, which do have voting rights and are able to hold leadership positions, but require much more commitment and obligations. We recommend attaining full membership for anyone who deeply believes in the cause and wants to be part of Project Elara for the long-term. This requires only that you sign the Project Charter and therefore vow to abide by and defend it, but is completely optional. If you are interested, feel free to read through the page linked above.

Step 3: Understand our organizational framework

Project Elara is a participating organization in RCOS, the Rensselaer Center for Open Source. Whether you are a student currently attending Renssealer Polytechnic Institute (RPI) contributing to the Project for credit, or if you are simply interested in working outside of RCOS, we have a spot for you!

Understand that Project Elara is open to all experience levels - in fact, you don’t even need to have experience working on open-source research or have a strong grasp in the type of work we do. Other than our more hands-on, technical, and mathematical aspects, we are also open to writers, musicians, artists, designers, and other people in creative fields. Regardless of how you want to contribute to the Project and the amount of experience you have, we are more than ready to welcome you, help you settle in, and find work that you enjoy doing.

Step 4: Familiarize yourself with general information about the Project

But first, we want to make sure you know what we do, and what our mission is! First, make sure you read our mission statement, which we’ve put down below:

We believe in open science: science without paywalls, done for the sake of advancing scientific knowledge and the public good. And we believe in the value of open source: making our code and hardware public, ensuring that it is available for everyone, so that no one will be able to establish a monopoly for its use.

In terms of the platforms we use, we’ve provided brief descriptions of each below.

As mentioned above, Codeberg is our main platform to coordinate our open-source research and development, hosting our code/designs, holding documentation, tracking tasks, and more. We are also on OpenCollective, where we keep track of our purchases for materials and equipment, ensuring financial transparency. Additionally, we are on Weblate, where we coordinate translations. Lastly, we use Substack for article writing and sharing our personal stories, in the hopes of raising awareness for the Project and also allowing opportunities for members to express themselves creatively.

Last but not least, we believe in working as a team, treating each other with kindness and understanding, and making sure everyone feels comfortable and safe within our team. A big part of this is that we carefully track contributions so everyone gets credit where credit is due. Working with us is contingent upon you affirming these ideals. If you choose to espouse, disseminate, or take action based on ideas that are hostile to our mission, you will not be allowed to further participate in our work. We will trust that you will act in good faith - please do not break that trust.

Optional: Gain a basic understanding of our research

We also want to make sure you have a basic grasp of our research and our design! For this, we highly recommend watching our trailer aimed at anyone new to the project.

Reading the first chapter of this Handbook is also recommended, but feel free to skip that if you don’t have the time.

Step 5: Pursue your interests

Having read our mission statement and our introductory poster, we want to make sure you have an idea of what we’re working on! Our general projects can be found on our research website. For more specific details on each project, please speak to our other members on the Discord. Feel free to ask questions!

To help divide up our work and to make best use of everyone’s talents, we have divided our team into several divisions (we colloquially just call them “teams”). At the moment, our divisions/teams are, respectively:

Some of the teams require more technical knowledge than others. A table of the recommended prerequistes for our technical teams is given below:

TeamRecommended prerequisites
Research teamPython, multivariable calculus, differential equations, annd a general understanding of physics. Numerical computing and high-performance computing experience is highly useful but not strictly required. In addition, research experience is a bonus.
Build teamMechanics & Electromagnetic theory (Physics I and II). Some knowledge of CAD/3D modelling and 3D printing is highly useful but not strictly required.
Embedded teamGeneral embedded development, Arduino, C/C++ programming, basics of circuits & electronics.
Software & web development teamDependent on the specific codebase, but useful skills include Python, shell scripting, HTML/CSS (and Sass)/JavaScript (and Typescript), static site generators, web servers & web frameworks, C/C++, and Rust.
Engineering team - electronics groupCircuits, hardware design, electronic components, LTSpice (or comparable software). CAD is useful but not strictly required.
Engineering team - aeronautics & astrodynamics groupBasic understanding of orbital mechanics, rockets/launch vehicles
Engineering team - general engineering groupBasic proficiency in math (algebra and calculus), basic understanding of physics (primarily kinematics and mechanics). Knowledge of CAD is useful but not strictly required.

If you aren’t familiar with these topics but still want to contribute, or if you want a refresher, the good news is that the Handbook allows you to self-learn (or review) nearly all of these topics! It has chapters on all the prerequisite math & physics, embedded development, programming in a variety of languages (as well as web development), and numerical computing to help you get started, among others. It is recommended to spend some time learning the prerequisites prior to working on a specific Elara subproject, but again, we have no minimum skill requirement, and everyone can contribute!

Please also make sure that you let us know how you’d like to keep in touch with us, so that we can work together more easily - again, our work is highly collaborative in nature. Our main platform is Discord and all of our leaders are on Discord, but we can accomodate other platforms. If you try a role and find that you don’t like it, that’s okay! Just let us know, we are happy to help you find something you enjoy doing!

Step 6: Next steps

Once you’ve done all the previous steps, you’re all set to start working with us! What to do next depends on which team/division you wish to join. Our leaders are more than happy to guide you through the process.

First, for anyone who wishes to work in the research, embedded, engineering, or build team, we want you to have a basic understanding of the technology we are developing. Hence, we recommend taking a quick look through the Elara laser development, Elara spacecraft, and Elara Labs repositories, as well as the Elara research site. In addition, since we are developing a type of laser called a free-electron laser, there are specific components of the laser that are useful to have some background in. For this, we recommend watching the veritasium video explaining how an electron gun works (between 2:45-3:53 in the video) and the veritasium video explaining how an undulator works (between 21:15-22:10 in the video); both links are timestamped.

We post all of our tasks on our general project tracker. Just let us know which task(s) you’d like to work on by adding a comment under the task(s), or by sending us a message: you can take whichever tasks interest you! In each task, we list out the work description in detail, as well as relevant sections in the Handbook for any background knowledge required. You are also welcome to work on improving this Handbook itself in the Elara Handbook repository!

And as mentioned, please get in touch with us, either by emailing elaraproject.sci@gmail.com or joining our Discord server (via the invite link mentioned previously). We’ll guide you through participating in the community and help you find a way to contribute. We want everyone to have fun and enjoy working in the Project.

Addendum: A short tutorial to Git

At Project Elara, we use the open-source version-control system Git for tracking contributions. Effectively, Git acts as a “time machine” for Project Elara, saving “snapshots” of each of our repositories in time, which we can always go back to later. Git can be pretty complex, so here is a list of useful Git commands to use.

General concepts

Typical Git workflow

Note: explanations of each of these commands is given below.

# download online repository
git clone https://your-repository-url.com
cd your-repository

# make some cool changes...

git add <your-changed-files>
# if you are lazy you can instead run:
git add * # this adds all your changes

git commit -m "Description of your changes" # 7 words or less
git pull --no-ff # sync online changes
git status # check everything looks good
git push # upload your changes

Basic commands

Configuration

Branches

Submodules

Other useful resources