For those new to the lab Github Start here:
- Navigating the lab Github
- Recordings
(Here, you can continue with the detailed sections as previously written...)
In the Virtual Embodiment Lab GitHub, you'll find various repositories to help you get started with Unity and our projects.
- Unity Tutorial: This repository contains tutorials and guides for getting up to speed with Unity, especially tailored for our lab's work.
- Unity Template: Use this as a starting point for new projects. It includes predefined settings and assets to streamline your workflow.
In the Virtual Embodiment Lab, we utilize GitHub Teams to manage and organize roles within our projects. This approach allows us to assign specific teams to relevant repositories, ensuring that every team member has access to the resources they need for their specific tasks.
- Structured Collaboration: Teams enable structured collaboration, where members can work together on projects while maintaining organization and clarity.
- Role-Specific Access: Different roles within a team may require different levels of access. For example, project leaders typically need full access to repositories, including administrative rights, whereas other team members might only need read or write access, depending on their responsibilities.
- Creating a New Team:
- Go to the GitHub page.
- Click on "Teams" in the organization's dashboard.
- Select "New team" and fill in the details such as team name, description, and repository access levels.
- Adding Members to a Team:
- Navigate to the team you wish to add members to.
- Select "Members" and then "Add a member."
- Enter the GitHub username of the individual you want to add and set their role within the team.
- Assign Repositories to Teams: Each team should be assigned specific repositories relevant to their project. This is done by navigating to the repository settings and adding the team under the "Collaborators & teams" section.
- Access Levels:
- Read: Suitable for team members who need to view and clone the repository but do not contribute code.
- Write: For team members actively contributing to the repository, allowing them to push changes.
- Admin: Reserved for project leaders and managers, providing full access to the repository, including settings and access control.
To find out which team you're in and access the repositories assigned to your team:
- Go to the GitHub page.
- Click on "Teams" in the dashboard.
- Locate and select your team to view its details, including associated repositories.
By efficiently managing teams and roles, we ensure that every member of the Virtual Embodiment Lab has the right tools and access for their contributions.
Git is a distributed version control system that is essential for managing our project's codebase think of it as Google Drive for code. For handling larger files, such as multimedia assets and datasets, we use Git Large File Storage (LFS). This tool replaces large files in the repository with text pointers and stores the file contents on a remote server. Here's a guide on installing and using Git and Git LFS.
- Download Git:
- Visit the official Git website and download the appropriate version for your operating system.
- Install Git:
- Run the downloaded installer and follow the on-screen instructions to complete the installation process.
- Verify Installation:
- Open a terminal (Command Prompt or Git Bash on Windows, Terminal on macOS and Linux) and type
git --version
. This command should return the installed version of Git, confirming successful installation.
- Open a terminal (Command Prompt or Git Bash on Windows, Terminal on macOS and Linux) and type
- Download Git LFS:
- Visit the Git LFS website and download the installer for your operating system.
- Install Git LFS:
- Run the installer and follow the setup instructions.
- Initialize Git LFS:
- Open a terminal and run
git lfs install
. This command sets up Git LFS.
- Open a terminal and run
- Find the Repository URL:
- Navigate to the GitHub repository page and click on the 'Code' button to find the repository URL.
- Clone the Repository:
- Open a terminal and type
git clone <repository-url>
, replacing<repository-url>
with the actual URL of the repository. - This command clones the repository to your local machine.
- Open a terminal and type
- Track Large Files:
- To track large files with Git LFS, use the command
git lfs track "<file-type>"
, replacing<file-type>
with the type of files you want to track (e.g.,*.psd
for Photoshop files). - This command should be run in the root directory of the Git repository.
- To track large files with Git LFS, use the command
- Commit and Push:
- After adding or updating files, commit them using
git commit
and push them to the remote repository usinggit push
. - Git LFS automatically handles the large files tracked by it.
- After adding or updating files, commit them using
- To update your local repository with the latest changes from the remote repository, use
git pull
.
- To create a new branch, use
git branch <branch-name>
. - To switch to a different branch, use
git checkout <branch-name>
.
This comprehensive guide should help you effectively use Git and Git LFS for managing and contributing to projects in our lab. Remember to regularly commit your changes and stay updated with the latest changes from other team members.
When starting a new project within our GitHub organization, you have the option to create a new repository from scratch or use the unity-template
repository as a basis. Here’s how to do both:
-
Go to the
unity-template
Repository:- Navigate to the
unity-template
repository within our GitHub organization.
- Navigate to the
-
Generate a New Repository from the Template:
- Click on the "Use this template" button, usually located near the top of the repository page.
- You'll be prompted to enter the new repository details:
- Owner: Ensure you select our organization.
- Repository name: Enter a name for your new project.
- Description: Optionally, provide a brief description of the project.
- Decide if the repository should be public or private.
- Click "Create repository from template" to generate your new project repository.
-
Clone the New Repository:
- Once your repository is created, clone it to your local machine using
git clone <repository-url>
, where<repository-url>
is the URL of your new repository.
- Once your repository is created, clone it to your local machine using
-
Personalize Your New Project:
- Rename any files, update project settings, and modify the project to suit your specific requirements.
-
Create a New Repository:
- Go to the main page of our GitHub organization.
- Click the "New" button to create a new repository.
- Fill in the repository name, description, and decide whether it should be public or private.
- Optionally, initialize the repository with a README, .gitignore, and license.
-
Clone the Repository:
- After creating the new repository, clone it to your local machine using
git clone <repository-url>
.
- After creating the new repository, clone it to your local machine using
-
Set Up Your Project:
- Set up your project environment locally by creating new files and directories as needed.
-
Push Initial Changes:
- Use
git add .
to stage your changes andgit commit -m "Initial commit"
to commit them. - Push these changes back to the remote repository using
git push -u origin main
.
- Use
Regardless of the option you choose, ensure to regularly commit your changes to the repository and keep it updated. This practice is essential for collaboration and maintaining a clear history of your project's development.
- Teamwork: The inflection points project.
- Mazeworld: The old mazeworld project that was made at Iowa State.
- PTSD: The collaboration with Weill creating a VR exposure module for PTSD.
- TSI_Framework: Originally this project was a monorepo for everything related to the TSI framework. It has since been deprecated and split into multiple repositories.
- NVC: Collaboartion with Dr. Shiri Azenkot's lab to create a VR experience for people with visual impairments.
- VELLib: A library of scripts and assets that we use across projects.
- Out Of Body: The out of body project.
During the Fall 2023 semester, I worked with a group of students and recorded some sessions where we went over some basic concepts in Unity that are helpfull for work in the lab. Here are links to the recordings of these sessions.
Description: Learn about the basics of character and object movement in Unity.
YouTube Video: Movement
Description: This video covers the creation and customization of avatars in Unity, explaining how to import models.
YouTube Video: Avatars
Description: Understand the concept of Inverse Kinematics and how it is used to create more realistic movements in Unity, especially for character joints and animations.
YouTube Video: Inverse Kinematics
Description: Explore the integration of VR headsets with Unity, focusing on setup, configuration, and basic VR interactions.
YouTube Video: Headsets
Description: How to create ormodify models in Blender and import them into Unity.
YouTube Video: Blender