diff --git a/content/pages/guide.rst b/content/pages/guide.rst
index e15823a5..c530e4fb 100644
--- a/content/pages/guide.rst
+++ b/content/pages/guide.rst
@@ -534,26 +534,25 @@ Internet
--------
Ethernet ports
- To enable/disable:
- Login to `Topdesk/Self Service Portal
- `_
- Then:
- ICT-Services > Network & WiFi > IT Request activation network outlet.
- Fill the form and wait.
+ | To enable/disable:
+ | Login to `Topdesk/Self Service Portal `_
+ | Then:
+ | ICT-Services > Network & WiFi > IT Request activation network outlet.
+ | Fill the form and wait.
Wired connection for desktop computers
- Send a solicitude to `ict-servicedesk@tudelft.nl` providing the following information:
- - TUD*** number.
- - Model of the computer.
- - Serial number.
- - Operating system.
- - Primary purpose of the computer.
- - MAC Address (if the PC was NOT purchased by TU Delft)
+ Send a solicitude to `ict-servicedesk@tudelft.nl` providing the following information:
+ - TUD*** number.
+ - Model of the computer.
+ - Serial number.
+ - Operating system.
+ - Primary purpose of the computer.
+ - MAC Address (if the PC was NOT purchased by TU Delft).
WiFi Hotspot
- On Windows:
Control panel > Network and Internet > Network and sharing center > Change adapter settings > Ethernet > Properties (as admin)
Select the "sharing" tab and mark "Allow other network users to connect through this computer's internet connection".
- On Linux
- Open the WiFi menu, in top right corner click options and then select "Turn on WiFi hotspot... (as admin)"
+ Open the WiFi menu, in top right corner click options and then select "Turn on WiFi hotspot... (as admin)".
Training
diff --git a/content/pages/research/bicycle-crashes.rst b/content/pages/research/bicycle-crashes.rst
new file mode 100644
index 00000000..d1ca4330
--- /dev/null
+++ b/content/pages/research/bicycle-crashes.rst
@@ -0,0 +1,70 @@
+====================================
+Understanding Single Bicycle Crashes
+====================================
+
+:status: hidden
+:date: 2025-01-20
+:collaborators: Jason Moore, Ajay Seth
+:current_researchers: Benjamin Gonzalez
+:research_theme: Cycling Safety
+:template: project
+:summary-sentence: We aim to discover how critical riding situations end in single bicycle crashes, through the understanding of biomechanics involved in the phenomena.
+:summary-image: https://objects-us-east-1.dream.io/mechmotum/fall-logo.png
+:slug: research/bicycle-crashes
+
+
+Description
+===========
+
+As cycling population increases, exposure to bicycle crashes also increases, which opens the question 'Why do we crash on the bicycle?'. Currently we don't have a conclusive answer. Common factors involved in crashes are known, such as slippery conditions, external perturbations and avoidance manoeuvres among others. However, the aim now is to delve into human biomechanics to understand why the rider is unable to resolve the critical situation and ends in a fall.
+
+
+This project consists in obtaining real-world bicycle crash data, create simulations that reproduce crash scenarios and include relevant human biomechanics for the outcome. With this, we aim to contribute to the understanding of human behaviour in critical situations, which will improve road safety.
+
+
+Ongoing Work
+============
+
+- **Characterisation of the Point of No Return:** Simulation of a simplified bicycle model in order to find the boundaries of bicycle riding and control.
+- **Kinematic data from monocular video:** Real world data of single bicycle crashes is scarcely available, therefore, we aim to extract the kinematics of the system from monocuclar videos.
+
+
+Research Output
+===============
+
+:Journal Articles:
+
+
+:Conference Papers:
+
+
+
+Contact
+=======
+
+Do you want to learn more about this project, collaboration options or themes for MSc and BSc Thesis? Reach me out!
+
+| **Benjamin E. Gonzalez Toledo**
+| *PhD Candidate, TU Delft*
+| ---
+| Biomechatronics & Human-Machine Control
+| Department of Biomechanical Engineering (BmE)
+| Faculty of Mechanical Engineering (ME)
+| Delft University of Technology
+| Mekelweg 2, 2628CD, Delft, The Netherlands
+| ---
+| Email_ | LinkedIn_ | ResearchGate_ | GitHub_ | `TU Delft`__
+
+.. _Email: mailto: b.gonzaleztoledo@tudelft.nl
+.. _LinkedIn: https://www.linkedin.com/in/eimolgonzalez/
+.. _ResearchGate: https://www.researchgate.net/profile/Benjamin-Gonzalez-34
+.. _Github: https://github.com/Eimolgon
+.. _TUD: https://www.tudelft.nl/en/staff/b.gonzaleztoledo/
+
+__ TUD_
+
+References
+==========
+
+.. [1] Gildea, K. and Simms, C. (2024). Kinepose framework for computer vision-aided reconstruction of pose and motion in human body models. In International Research Council on Biomechanics of Injury (IRCOBI). https://doi.org/10.1016/j.jbiomech.2024.111959
+
diff --git a/dreamobject2.py b/dreamobject2.py
new file mode 100644
index 00000000..73634a6b
--- /dev/null
+++ b/dreamobject2.py
@@ -0,0 +1,60 @@
+# Create a ~/.boto file with:
+#[Credentials]
+#aws_access_key_id =
+#aws_secret_access_key =
+
+import os
+
+import boto3
+import botocore
+
+accepted_file_exts = ['.pdf', '.png', '.gif', '.mp4', '.jpg', '.svg']
+BUCKET_NAME = 'mechmotum'
+HOST = 'objects-us-east-1.dream.io'
+assets_dir = 'assets'
+
+
+def upload(overwrite=False):
+
+ s3 = boto3.resource('s3')
+ s3client = boto3.client('s3')
+ bucket = s3.Bucket(BUCKET_NAME)
+
+ files = os.listdir(assets_dir)
+
+ for fname in files:
+ if os.path.splitext(fname)[-1] in accepted_file_exts:
+ #key = conn.Object(bucket, fname)
+ try:
+ key = s3.Object(bucket, fname)
+ #key.load()
+ except botocore.exceptions.ClientError as e:
+ if e.response['Error']['Code'] == "404":
+ # The key does not exist.
+ print('The key does not exist.')
+ elif e.response['Error']['Code'] == 403:
+ # Unauthorized, including invalid bucket
+ print('Unauthorized, including invalid bucket')
+ else:
+ # Something else has gone wrong.
+ print('Something went wrong, this is just a test.')
+ raise
+
+ s3.Object(BUCKET_NAME, fname).put(Body=open(os.path.join(assets_dir, fname), 'rb'))
+ else:
+ print('Skipping: {}'.format(fname))
+
+ for o in bucket.list():
+ o.Acl().put(ACL='public-read')
+
+
+if __name__ == "__main__":
+
+ import argparse
+
+ parser = argparse.ArgumentParser(description='Upload Files to Dreamhost.')
+ parser.add_argument('--overwrite', action='store_true',
+ help="Forces files to be overwritten.")
+ args = parser.parse_args()
+
+ upload(overwrite=args.overwrite)