1. Principles and practices & Project management¶
This week I worked on defining my final project idea and started to getting used to the documentation process.
Assignments and Assessment this week¶
Principles and Practices (part 1 of 2)¶
- Plan and sketch a potential final project
Project Management (part 2 of 2)¶
- Read, sign (add your name to) the student agreement and commit it to your repo
- Work through a git tutorial.
- Build a personal website in the class archive describing yourself and your final project. Refer to the lecture material for examples.
- Upload parts 1 and 2, to the class archive.
Learning outcomes¶
- Communicate an initial project proposal
- Identify and utilise version control protocol(s)
- Explore and use website development tool(s)
Have you answered these questions?¶
- Sketched your final project idea(s)
- Described briefly what it will do and who will use it
- Made a website and described how you did it
- Created a section about yourself on that website
- Added a page with your sketch and description of your final project idea(s)
- Documented steps for setting up your Git repository and adding files to it
- Pushed to your class GitLab repository
- Signed and uploaded Student Agreement
Principles and Practices¶
Final Project¶
Since, I am tackling my Final Project as my company’s project, I am writing Final Project’s detail idea in my NDA folder(only accessible to whom signed the NDA).
Outline: Develop “Semi Active Kinetic Seat”¶
Structure¶
Principle of Kinetic Seat: Both seat backrest and seat bottom (pelvis) cushion is suspended by flexible belts by fixing the rotational axis position but allowing the rotational motion.


FABLAB.able Kinetic Seat made in Kenya 1st prototype
One example of the “Semi Active Kinetic Seat” control system outline is as follows;
My strong intention for the final project is
to achieve this active control without spoiling the “original Kinetic Seat function”

Latest version of Kinetic Seat for Kenya (made of bamboo and natural material)
Motor (linear or step?)
Linkage to provide torque to swing sub-frame of Kinetic Seat
Rotary sensor to sense motor angle position
Wire or wireless net work VS vehicle
Test vehicle with CANVAS net work connection for actual test driving at Toyota Proving Ground
* Car Driving Game with display and steering wheel for FAB26 workshop booth to collect feedback from FAB26 audience
Benefit¶
- Prevent all passenger’s Car Sickness
- Improve driver to vehicle engagement
More benefits are written in my NDA folder(only accessible to whom signed the NDA).
Research¶
Git Lab¶
All Fab Academy students will communicate and share with the Documentation using “Git Lab” the wed-based tool that provides repository developed by GitLab Inc, but being self hosted by Fab Foundation. (Similar to Git Hub carried by Microsoft)
-
Git as a strong tool for version controlling in collaborative development¶
Git Lab is also useful mutual programming, documenting, and modeling development with it’s well organized version controlling system.
To make the most of version controlling benefit, it is strongly recommended to work in local PC for making a documentation, and push it to the cloud repository at end of work.
got image from Rico
Git is a tool used for tracking changes to files over time.
It helps us;
Save our changes as commits
Store everything in a repository
Can view history of all commits (who/when/what changed)
Revert/restore past changes
Push commits (changes) to remote central repository
Multiple locations can sync their changes with remote origin repository
image from Julian Gallimore
There are basically three stages we need to aware working with Git;
Working Directory which is in our local PC
Staging Area as the temporary area where we prepare changes before committing
* Repository the permanent storage of all commits and history
There are several ways to transfer information into Git Repository such as;
Directly write code with Web IDE
Cloning with SSH Key
* Cloning with HTTPS (using personal access tokens)
In Fab Academy, “Cloning with SSH Key” is strongly recommended because of the strong security and easiness of the process.
Set up Git in my PC¶
- Install Git on my computer
- Configure my Git environment
- Authenticate Git with my GItLab account
- Pull (download) my project repository
- Change coding environment into MkDocs (since I want to use MarkDown coding)
Tools¶
Visual Studio Code¶
For editing Markdown code, “Visual Studio Code” helps a lot by adding several extensions such as “Code Spell Checker”, “GilLens”, “Markdown Preview Enhanced”, etc.
Greenshot¶
For making screen shot with controlled size, “GreenShot” works very well by setting the destination folder to save. It must be a strong tool for Fab Academy students to save all trial in PC.
3D Solid vs 3D Surface vs 3D Mesh
(Fusion) (Rino) (Blender)
Setting of SSH Key for data security¶
What is SSH Key?¶
SSH Key is a system to use Git with SSH protocol to establish secure communication between our computer and Git server hosting our repository without using password.
SSH Keys are a pair of files that prove our identity to a server. Our computer has a “private” key and usually the server (GitLab) has the corresponding “public” key. The “public” key is safe to share and this means to be able to distributed. When making a connection, if the two keys (private and public) match, the server knows the user.
Making SSH Key and connect with GitLab repository¶
Thanks to our local instructor Yosuke Tsuchiya’s kind instruction, I could successfully set my SSH key as follows.
Preparation in local PC¶
Make a folder in local PC for Fab Academy documentation work. Then open Git Bash terminal, and go to the folder I made as “fab-academy”.
kohsh@Kohshi MINGW64 /c/Users
$ cd
kohsh@Kohshi MINGW64 ~
$ ls
AppData/
***
Cookies@
Documents/
Downloads/
***
fab-academy/
***
kohsh@Kohshi MINGW64 ~
$ cd fab-academy
Confirm that there is no any files under the folder “fab-academy” with “ls” command.
kohsh@Kohshi MINGW64 ~/fab-academy
$ ls
Confirmed that there is no files under the “fab-academy” folder.
Command ssh-keygen -t rsa -C “kohshikatoh@gmail.com”
to make SSH-Key with the comment of “kohshikatoh@gmail.com”
This time, “rsa” type of algorithm is chosen.
“ssh-keygen” command is to generate both public and private secret key.
Public key should be saved in the GitLab repository side, and Private Key to be saved in local PC.
kohsh@Kohshi MINGW64 ~/fab-academy
$ ssh-keygen -t rsa -C "kohshikatoh@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/kohsh/.ssh/id_rsa):
/c/Users/kohsh/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/kohsh/.ssh/id_rsa
Your public key has been saved in /c/Users/kohsh/.ssh/id_rsa.pub
The key fingerprint is:
************************************************** kohshikatoh@gmail.com
The key's randomart image is:
+---[RSA ****]----+
|*****************|
|*****************|
|*****************|
|*****************|
|*****************|
|*****************|
|*****************|
|*****************|
|*****************|
+----[SHA***]-----+
Confirm if the “ssh” folder is existing in parallel to the working folder “fab-academy”.
kohsh@Kohshi MINGW64 ~
$ ls -la
total 30119
drwxr-xr-x 1 kohsh 197609 0 Jan 22 18:56 ./
drwxr-xr-x 1 kohsh 197609 0 Dec 22 2024 ../
*****************************************************
drwxr-xr-x 1 kohsh 197609 0 Sep 21 2024 .ssh/
*****************************************************
drwxr-xr-x 1 kohsh 197609 0 Jan 22 18:55 fab-academy/
Go to “ssh” folder and confirm both private key “id_rsa” and public key “***.pub”
kohsh@Kohshi MINGW64 ~
$ cd .ssh
kohsh@Kohshi MINGW64 ~/.ssh
$ ls
id_rsa id_rsa.pub known_hosts known_hosts.old
Command “cat ***.pub” to complete the public key
kohsh@Kohshi MINGW64 ~/.ssh
$ cat id_rsa.pub
ssh-rsa
***************************************************************************
***************************************************************************
***************************************************************************
******************************************************kohshikatoh@gmail.com
Make a clone in local PC from GitLab repository¶
Go to the local folder “fab-academy” where I want to make a clone from GitLab repository.
kohsh@Kohshi MINGW64 ~
$ cd fab-academy
kohsh@Kohshi MINGW64 ~/fab-academy
$ ls
Make a clone from GitLab repository.
kohsh@Kohshi MINGW64 ~/fab-academy
$ git clone git@gitlab.fabcloud.org:academany/fabacademy/2026/labs/kamakura/students/kohshi-katoh.git
Cloning into 'kohshi-katoh'...
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 19 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (19/19), 28.91 KiB | 14.45 MiB/s, done.
Resolving deltas: 100% (2/2), done.
Confirm if all files clone were made in local “fab-academy” folder.
kohsh@Kohshi MINGW64 ~/fab-academy
$ ls
kohshi-katoh/
Confirmed that folder “kohshi-katoh” the user folder in GitLab repository was made.
Then, confirm files in the “kohshi-katoh” folder.
kohsh@Kohshi MINGW64 ~/fab-academy
$ cd kohshi-katoh/
kohsh@Kohshi MINGW64 ~/fab-academy/kohshi-katoh (main)
$ ls
NDA/ README.md public/
Check detail files with “ls -la” command
kohsh@Kohshi MINGW64 ~/fab-academy/kohshi-katoh (main)
$ ls -la
total 17
drwxr-xr-x 1 kohsh 197609 0 Jan 23 21:44 ./
drwxr-xr-x 1 kohsh 197609 0 Jan 23 21:44 ../
drwxr-xr-x 1 kohsh 197609 0 Jan 23 21:44 .git/
-rw-r--r-- 1 kohsh 197609 231 Jan 23 21:44 .gitlab-ci.yml
drwxr-xr-x 1 kohsh 197609 0 Jan 23 21:44 NDA/
-rw-r--r-- 1 kohsh 197609 925 Jan 23 21:44 README.md
drwxr-xr-x 1 kohsh 197609 0 Jan 23 21:44 public/
Change Coding type from HTML to MkDoc¶
Since I have been working with Mark Down coding in Fabricademy, I would like to write with Mark Down in Fab Academy as well.
Then it is necessary to change the default set HTML version into MkDocs version.
There is MkDocs version “Student Template” prepared by Fab Academy.
I need to make a clone from this MkDocs version template into my local “fab-academy” folder.
kohsh@Kohshi MINGW64 ~/fab-academy
$ ls
kohshi-katoh/
kohsh@Kohshi MINGW64 ~/fab-academy
$ git clone git@gitlab.fabcloud.org:academany/fabacademy/templates/student-template-mkdocs.git
Cloning into 'student-template-mkdocs'...
remote: Enumerating objects: 200, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 200 (delta 4), reused 10 (delta 4), pack-reused 190 (from 1)
Receiving objects: 100% (200/200), 411.05 KiB | 574.00 KiB/s, done.
Resolving deltas: 100% (108/108), done.
Confirmed the “student-template-mkdocs” is cloned into my local PC folder.
kohsh@Kohshi MINGW64 ~/fab-academy
$ ls
kohshi-katoh/ student-template-mkdocs/
Open Explore windows two in parallel to copy necessary folders and files into my local “kohshi-katoh” folder from “student-template-mkdocs” folder as following picture.
Copy MkDocs version files into Document folder manually by displaying both folders in parallel¶

Then, make update into my GitLab repository by following command in following order;
git add . —> git commit -m “comment” —> git-push¶
git add .¶
kohsh@Kohshi MINGW64 ~/fab-academy
$ cd kohshi-katoh
kohsh@Kohshi MINGW64 ~/fab-academy/kohshi-katoh (main)
$ ls
NDA/ README.md docs/ mkdocs.yml requirements.txt
kohsh@Kohshi MINGW64 ~/fab-academy/kohshi-katoh (main)
$ git add .
git commit -m “comment”¶
It is ideal to always put some comment what you have done. This time I put “change to mkdocs” as the comment.
kohsh@Kohshi MINGW64 ~/fab-academy/kohshi-katoh (main)
$ git commit -m "change to mkdocs"
[main 33af55e] change to mkdocs
43 files changed, 1543 insertions(+), 355 deletions(-)
create mode 100644 docs/about/agreement.md
create mode 100644 docs/about/index.md
create mode 100644 docs/assignments/week01.md
create mode 100644 docs/assignments/week02.md
create mode 100644 docs/assignments/week03.md
create mode 100644 docs/assignments/week04.md
create mode 100644 docs/assignments/week05.md
create mode 100644 docs/assignments/week06.md
create mode 100644 docs/assignments/week07.md
create mode 100644 docs/assignments/week08.md
create mode 100644 docs/assignments/week09.md
create mode 100644 docs/assignments/week10.md
create mode 100644 docs/assignments/week11.md
create mode 100644 docs/assignments/week12.md
create mode 100644 docs/assignments/week13.md
create mode 100644 docs/assignments/week14.md
create mode 100644 docs/assignments/week15.md
create mode 100644 docs/assignments/week16.md
create mode 100644 docs/assignments/week17.md
create mode 100644 docs/assignments/week18.md
create mode 100644 docs/assignments/week19.md
create mode 100644 docs/assignments/week20.md
create mode 100644 docs/files/.gitkeep
create mode 100644 docs/images/avatar-photo.jpg
create mode 100644 docs/images/favicon.svg
create mode 100644 docs/images/sample-photo.jpg
create mode 100644 docs/images/sample-pic-2.jpeg
create mode 100644 docs/images/week01/assignment-photo.jpg
create mode 100644 docs/index.md
create mode 100644 docs/projects/final-project.md
create mode 100644 docs/projects/sample-project.md
create mode 100644 mkdocs.yml
delete mode 100644 public/404.html
delete mode 100644 public/about.html
delete mode 100644 public/assignments/week01.html
delete mode 100644 public/final-project.html
delete mode 100644 public/images/avatar-photo.jpg
delete mode 100644 public/images/sample-photo.jpg
delete mode 100644 public/index.html
delete mode 100644 public/style.css
create mode 100644 requirements.txt
git push¶
kohsh@Kohshi MINGW64 ~/fab-academy/kohshi-katoh (main)
$ git push
Enumerating objects: 46, done.
Counting objects: 100% (46/46), done.
Delta compression using up to 24 threads
Compressing objects: 100% (40/40), done.
Writing objects: 100% (43/43), 208.72 KiB | 5.22 MiB/s, done.
Total 43 (delta 21), reused 0 (delta 0), pack-reused 0 (from 0)
To gitlab.fabcloud.org:academany/fabacademy/2026/labs/kamakura/students/kohshi-katoh.git
809b406..33af55e main -> main
I was instructed by Yosuke Tsuchiya that it is better to use CUI manipulation than GUI since it is more clear with the history in terminal what I have done. GUI manipulation is easier but it could make confusion if I get lost what I have done without history.
<!– “Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.”
“Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.”
Useful links¶
Code Example¶
Use the three backticks to separate code.
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Gallery¶

Video¶
From Vimeo¶
Sound Waves from George Gally (Radarboy) on Vimeo.
From Youtube¶
3D Models¶
from original week01 default¶
“Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.”
“Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.”
Useful links¶
Code Example¶
Use the three backticks to separate code.
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Gallery¶

Video¶
From Vimeo¶
Sound Waves from George Gally (Radarboy) on Vimeo.
From Youtube¶
3D Models¶
Use HTML¶
You may also embed HTML in your markdown files
Try having a seperator line
| ID | First Name | Last Name |
|---|---|---|
| 235312 | John | Doe |
| 453123 | Mark | Jones |
| 998332 | Jonathan | Smith |
| 345612 | Andrew | McArthur |
| 453123 | Adam | Fuller |