This is a template docker-based dev environment. It currently supports NVIDIA GPUs but with slight modifications it can target for x86 CPUs and Apple silicon chips.
It currently includes the following tools:
- a
assignmentsdirectory with an empty notebook where you need to populate with your code. The notebook can optionally use the artagents library. - a
projectdirectory for your project source code. The documentation for the project is stored separately in thedocsdirectory. - a
docsdirectory that contains the source code of quarto markdown (qmd) andipynbnotebooks content. You use the docs folder to publish your project work.
This repository includes a VS Code development container configuration that can be launched with either CPU or GPU support.
- Install VS Code with the "Dev Containers" extension
- Install Docker and ensure it's running
- For GPU support: Install NVIDIA Container Toolkit (for Linux) or Docker Desktop with GPU support
After the container is launched you can install femtotransformer, run the following command:
make startDont forget to source the environment after the make command:
source .venv/bin/activateYou can customize the exposed ports by modifying the .env file. Each service has its own set of port variables:
Dev Service Ports:
DEV_QUARTO_PORT: Quarto preview server (default: 4199)DEV_JUPYTER_PORT: Jupyter notebook server (default: 8890)DEV_PORT: Additional development server (default: 8088)
ROS Service Ports:
ROS_PORT: ROS master port (default: 11311)ROS_QUARTO_PORT: Quarto preview server (default: 4180)ROS_JUPYTER_PORT: Jupyter notebook server (default: 8880)ROS_DEV_PORT: Additional development server (default: 8078)
Note: The actual ports exposed will be the values from your .env file.
The repository supports multiple container configurations:
dev: Standard PyTorch development environmentros: ROS development environment with GPU support
Switch between services using the provided shell script:
# Configure for PyTorch development
./devcontainer.sh dev
# Configure for ROS development
./devcontainer.sh rosThe script will:
- Update the
.devcontainer/devcontainer.jsonservice configuration - Update environment files (
.envand.devcontainer/devcontainer.env) - Optionally launch VS Code for you
To manually switch services, modify the service field in .devcontainer/devcontainer.json:
{
"service": "torch.dev.gpu" // or "ros.dev.gpu"
}After changing the service configuration, close and reopen VS Code, then select "Reopen in Container" when prompted.
- Follow all instructions under resources in the class website as you will need it to submit your work.
- Familiarize yourself with the
uvpackage manager as you will use it to build and manage all your dependencies. - Follow the instructions in the course web site under resources to submit your github repo to the course's LLM system (Canvas/Brightspace).
You can connect to the foxglove app using the following command:
ros2 launch foxglove_bridge foxglove_bridge_launch.xml