A long-term learning project: Julia for mechanical engineering & robotics, building toward a published Julia package.
- Learn Julia properly (syntax, idioms, performance, ecosystem).
- Build robotics fundamentals from scratch (rigid-body transforms, DH parameters, kinematics, dynamics).
- Produce YouTube content along the way (recordable, reproducible lessons).
- End with a real, published Julia package (
MechJulia.jl).
# 1. Instantiate the package environment (downloads deps once)
julia --project=. -e 'using Pkg; Pkg.instantiate()'
# 2. Run the test suite (sanity check that the package is wired up)
julia --project=. -e 'using Pkg; Pkg.test()'
# 3. Use the package from a REPL or notebook
julia --project=.
# julia> using MechJulia
# julia> rotation_z(π/2) * SA[1.0, 0.0, 0.0]
# 3-element SVector{3, Float64} with indices SOneTo(3):
# 6.123233995736766e-17
# 1.0
# 0.0For the Pluto notebooks under notebooks/, see notebooks/README.md — they use a separate Julia environment so notebook-only dependencies don't bloat the package.
| Phase | Topic | Output |
|---|---|---|
| 0 | Julia setup, REPL, Pluto, project tooling | Working env, this repo |
| 1 | Julia fundamentals | Notebooks 01–10 |
| 2 | Linear algebra, rotations, transforms | Notebooks 11–20 |
| 3 | Robot kinematics (FK, IK, Jacobians) | Notebooks 21–30 |
| 4 | Robot dynamics (Lagrangian / Newton–Euler) | Notebooks 31–40 |
| 5 | Trajectory planning & control | Notebooks 41–50 |
| 6 | Visualization, simulation, testing | Notebooks 51–55 |
| 7 | Package the whole thing | MechJulia.jl on JuliaHub / General registry |
See ROADMAP.md for the detailed week-by-week plan.
.
├── README.md
├── ROADMAP.md ← detailed week-by-week plan
├── Project.toml ← package deps (what gets published)
├── src/ ← package source
│ ├── MechJulia.jl ← entry point
│ ├── units.jl
│ ├── transforms.jl ← rotations & homogeneous transforms
│ ├── kinematics.jl ← Phase 3 placeholder
│ ├── dynamics.jl ← Phase 4 placeholder
│ └── trajectories.jl ← Phase 5 placeholder
├── test/ ← package tests
│ └── runtests.jl
├── docs/ ← documentation site (Documenter.jl) — Phase 6
├── notebooks/ ← Pluto.jl lessons (video source material)
│ ├── README.md
│ └── 00_setup/
│ └── 01_hello_pluto.jl
├── videos/ ← YouTube scripts, thumbnails, notes
└── .github/workflows/ ← CI
- Phase 0 — environment & tooling
- Phase 1 — Julia fundamentals (notebooks 01–10)
- Phase 2 — Math for robotics (notebooks 11–20)
- Phase 3 — Robot kinematics (notebooks 21–30)
- Phase 4 — Robot dynamics (notebooks 31–40)
- Phase 5 — Trajectory planning & control (notebooks 41–50)
- Phase 6 — Engineering quality (CI, docs, benchmarks)
- Phase 7 — Publish to the General registry