Skip to content

A compilation of school projects I've done at SUTD consisting of various programming languages and frameworks.

Notifications You must be signed in to change notification settings

WindJammer6/17.-Mini-Projects-from-School

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

17.-Mini-Projects-from-School

A compilation of mini school projects I've done at SUTD consisting of various programming languages and frameworks.

Larger school projects I've done at SUTD are in their respective Github repositories.


Table of Contents

Here are some of my school projects:

  1. Generative Design Project with Rhinoceros and Grasshopper
  2. Parametric Design Project with Rhinoceros and Grasshopper
  3. SUTD's DiscoverSUTD Event Proposal Submission, Event Approval, and Event Publishing Automation Process
  4. Sketching Chaos, Transient Chaos and No Chaos Graphs from the Lorenz Equation (Chaos Theory)
  5. Arcade Minigames (Python) Project
  6. SUTD's Design Thinking and Innovation (DTI) module project
  7. Computer Aided Design (CAD) of Molecules using GaussView and Avogadro, with WinSCP and MobaXterm for Quantum Chemistry module
  8. ROOT FAQ Forum using Figma and Nextjs
  9. NiCE Hack Hackathon 2024 (Hardware Security)

Summary about the project:
The project task is to create a generative design in Rhinoceros and Grasshopper using techniques developed aiming to produce something that cannot be recreated using conventional media. The theme of this assignment is “Beyond Human Aptitude”.

In the '1. Generative Design Project with Rhinoceros and Grasshopper' folder, there are 3 files, consisting of the Grasshopper code, PowerPoint slides and PowerPoint slideshow. Used Photoshop to create the GIF animations in the PowerPoint slides to capture the physical changes in the 3D model as a parameter in the Grasshopper code is changed.

Source(s):
(See the PowerPoint slides)

Programming Languages used:
nil

Frameworks used:
My Skills


Summary about the project:
The project task is to create a parametric design model using the techniques developed. Produce a scalar field family of surfaces and present variation matrices mapping interactions between parameters. Categorize instances along qualitative and quantitative dimensions and after selecting your favorite option, use 3D printing to produce a physical prototype using a 3D printing software, Ultimaker Cura. The theme of this assignment is “Mapping Variations”.

In the '2. Parametric Design Project with Rhinoceros and Grasshopper' folder, there are 3 files, consisting of the Grasshopper code, PowerPoint slides and PowerPoint slideshow. Used Photoshop to create the GIF animations in the PowerPoint slides to capture the physical changes in the 3D model as a parameter in the Grasshopper code is changed.

Source(s):
(See the PowerPoint slides)

Programming Languages used:
My Skills

Frameworks used:
My Skills


SUTD_D.1.MP4

The video shows a demonstration of how the 'SUTD's DiscoverSUTD Event Proposal Submission, Event Approval, and Event Publishing Automation Process' looks like. Done by me using OBS Studio software for screen recording and VideoPad Video Editor (by NCH Software) for video editing. There is no audio in this demonstration video.

I have a seperate Github repository that documents more in-depth of how this automation process is meant to be used by the future planning committees and Office of Student Activities (OSA) of Singapore University of Technology and Design (SUTD)'s DiscoverSUTD.

Summary about the project:
During the first few months of the new students of my university, there will be a series of events be held to integrate them into University life. These events are planned by communities throughout the universities and they need to be approved by the university office by submitting an event approval form. Once approved, the details of the event (e.g. date, venue, sign-up form, hosting organisation, etc.) will updated to an online school calender that will be shared to all the new students.

For some reason (either it was lost or never made), there isn't a automated workflow of this process. Hence, here is my attempt to automate the workflow, using Zapier as the "workflow automated tools" as the software medium of the workflow automation, Tally (form) as the event approval form, Google sheets as the database to store details of the submitted event approval form and as the software medium for the university's office staff to approve events, and Notion's calender as the online school calender that will be shared to all the new students.

--Workflow:--
(Using Zapier's workflow automation framework)
Tally form submission -> Updates Google sheets -> Updates Notion's calender

Source(s):

Programming Languages used:
nil

Frameworks used:
My Skills


Summary about the project:

  • The first Lorenz Equation graph has the initial conditions of x=0, y=1, z=0, and parameters of ∂=10, r=28, b=8/3 and represents Chaos in the Lorenz Equation solutions.
  • The second Lorenz Equation graph has the initial conditions of x=-25, y=-10, z=-13.9, and parameters of ∂=10, r=21, b=8/3 and represents Transient Chaos in the Lorenz Equation solutions.
  • The third Lorenz Equation graph has the initial conditions of x=0, y=1, z=0, and parameters of ∂=10, r=350, b=8/3 and represents no Chaos in the Lorenz Equation solutions.

From wikipedia: "Chaos theory is an interdisciplinary area of scientific study and branch of mathematics focused on underlying patterns and deterministic laws of dynamical systems that are highly sensitive to initial conditions, and were once thought to have completely random states of disorder and irregularities."

The project task is to solve the Lorenz Equation (a Chaotic system/equation) as given in the question by drawing graphs with varying initial conditions and parameters (∂, r and b) and plotting y against t for the graphs.

Not much new here, except that I had to learn how to use the 'solve_ivp' function from the 'scipy.integrate' library specifically to be able to plot the set of Ordinary Differential Equations (ODE) of the Lorenz Equation using Matplotlib in Python into a graph (link of Youtube video where I learnt how to use the 'solve_ivp' function from the 'scipy.integrate' library: https://www.youtube.com/watch?v=INBu1Pyj0Is (Physics with Neo))

Source(s):

Programming Languages used:
My Skills

Frameworks used:
nil


Arcade.Minigames.Python.Project.Introduction.Video.mp4

Summary about the project:
The project task is to create a Python programming project assignment in a group, hence the creation of this project, done by me and some of my classmates. It consists of a main menu (no GUI) and 6 minigames:

  • Tic-Tac-Toe (no GUI)
  • Hangman (no GUI)
  • Rock, Paper, Scissors (no GUI)
  • Blackjack (no GUI)
  • Light Cycle (with GUI, using the 'turtle' Python library)
  • Space Invaders (with GUI, using the 'tkinter' Python library)

The video shows a demonstration of how the 'Arcade Minigames' Python project looks like. Done by me using OBS Studio software for screen recording and VideoPad Video Editor (by NCH Software) for video editing. Music is 'Always with me' by Studio Ghibli.

Source(s):
nil

Programming Languages used:
My Skills

Frameworks used:
nil


DTI Part 1 A3 posters (individual work)


DTI Part 2 A3 posters (group work)


DTI Part 3 5 A3 posters (individual work)


DTI Part 4 1 A1 poster, promotional video and functional prototype demonstration video (group work)

DTI.Part.4.Group.Work.Idea.Promotional.video.mp4
DTI.Part.4.Group.Work.Functional.Model.Demonstration.video.mp4

Summary about the project:
The project task is to use creative installations of light to improve social experiences. The project is split into 4 parts that involve different tasks, some are a group task, some are individual tasks:

  • DTI Part 1: Identify and analyse an everyday activity and a site where this activity takes place, as well as come up with a problem statement (individual work)

    • My selected everyday activity is taking the lift, and my selected site where this activity takes place is at a lift lobby in Changi City Point (CCP) Mall (Singapore). The poster is done using Canva and the drawn images are done via image tracing of the personally-taken pictures of the site in Abode Illustrator and image editing in Photoshop.
  • DTI Part 2: Finalise and refine the analysis of the everyday activity, the site and problem statement as a group (group work)

    • As a group, we finalised the everyday activity of taking the lift, but with the selected site where this activity takes place at a lift lobby in Eastpoint Mall (Singapore). The poster is done using Canva and the drawn images are done via image tracing of the personally-taken pictures of the site in Abode Illustrator and image editing in Photoshop..
  • DTI Part 3: Brainstorm ideas and finalise a best idea individually (individual work)

    • My brainstorm ideas are as shown in the Mindmap A3 poster, with help with inspiration from ChatGPT. My finalised best idea is 'Directional FloorContours', where it attempts to tackle the problem of awkwardness (both physical and emotional) when entering a crowded lift during peak hours, by having floor light marking indications (with a floor level label) that helps to organise movement and positioning of lift users inside the lift and at the lift lobby, that optimises positioning and minimises movement during lift user entering and exiting the lift. The poster is done using Canva and the drawn images are done via image tracing of the personally-taken pictures of the site in Abode Illustrator and image editing in Photoshop.
  • DTI Part 4: Finalise and refine the best idea (out of all the individual 'best ideas'), build a functional prototype, and a scale model of the prototype being used at the site (group work)

    • As a group, we finalised on the best idea we have named: LambLens. LambLens is a visual display of the lift status using aesthetic designs of a farm-theme that is placed around the lift lobby to provide information of the lift status to people looking to take the lift. The visual display updates in realtime, where the lambs indicate where people are standing in the lift.

    • LambLens uses an array of IR sensors to track at which spaces in the lift is being occupied by a person or an object (such as a stroller/trolley), and the array of IR sensors sends the data to a microprocessor (such as Arduino), and the processed data is sent to a CPU (such as a computer), which is connected to a display screen which displays the lift status in the entertaining, aesthetic farm-theme.

    • On the functional prototype:

      • We used basswood and laser cutting (using RDWorks software) to build the functional prototype model, with 3D printed 1:15 human models and objects (using Ultimaker Cura software).
      • We took the approach of building the functional prototype model as puzzle pieces, where we did not use glue/nails, and hence can assemble and disassemble the functional prototype model easily.
      • We used Arduino, connected to an array of Arduino IR sensor modules, to detect the presence of the 3D printed human models and objects (using Ultimaker Cura software) placed in our functional (1:10) lift prototype model made using basswood and laser cutting (using RDWorks software). The data from the Arduino IR sensor modules is then sent to a computer via a USB cable connected to the computer.
      • In the computer, a webpage of the farm-themed lift status is built using Flask (a Python website building framework), HTML and CSS, that takes in the data from the Arduino IR sensors, and it refreshes periodically to update itself with the most current data from the Arduino IR sensors.
    • On the scale model (1:50):

      • We used basswood, clear acrylic, frosted acrylic and laser cutting (using RDWorks software), and 1:50 human models purchased online.
      • We took the approach of building the scale model as puzzle pieces, where we did not use glue/nails, and hence can assemble and disassemble the scale prototype model easily.
    • On the promotional video:

      • We used Blender to create the animations and 2 scenes used in the video, the Eastpoint Mall (Singapore) model and the Lift Lobby model. The Blender human animations are downloaded from Mixamo, and Blender object models are downloaded from Turbosquid and Free3D.
      • Video editing is done using iMovie
    • On the A1 poster:

      • The poster is done using Canva and the drawn images are done using Abode Illustrator and Photoshop.

Source(s):
(Too many and cannot keep track)

Programming Languages used:
My Skills My Skills My Skills

Frameworks used:
My Skills My Skills My Skills My Skills My Skills


Symmetric Stretching vibration mode of a N2 molecule

Bending vibration mode of a CO2 molecule

Bond angle of a C atom in the cis-2-butene molecule

Bond length between the C=C double bond in the cis-2-butene molecule

Bond angle of a C atom in the trans-2-butene molecule

Bond length between the C=C double bond in the trans-2-butene molecule

Summary about the project:
A short interesting assignment (not quite a project) on atom/molecule CADDing using software as part of a Quantum Chemistry module.

From wikipedia: "Quantum chemistry, also called molecular quantum mechanics, is a branch of physical chemistry focused on the application of quantum mechanics to chemical systems, particularly towards the quantum-mechanical calculation of electronic contributions to physical and chemical properties of molecules, materials, and solutions at the atomic level."

The project task is to explore and explain some molecular geometry characteristics (e.g. bond length, bond angle, different vibration modes, etc.) for different molecules using the GaussView and Avogadro softwares, and explain how does these molecular geometry characteristics affect its chemical and physical properties of the molecules.

Also learnt (surface level) to use some other very technical softwares such as WinSCP (to transfer our processed CAD molecule files to our professors), and MobaXterm (used its terminal to process the directly created CAD molecule files from GaussView ('com' files) into 2 other files, '.log' and '.chk', where the '.log' file is the executable file, which is opened in the Avogadro software to study the CAD molecule's molecular geometry).

--Workflow:--
a. GaussView - create CAD molecule file ('.com')
b. MobaXterm - process the CAD molecule file ('.com') to get '.log' and '.chk' files
c. Avogadro - to run the executable processed CAD molecule file ('.log')
d. WinSCP - upload the processed CAD molecule files here ('.com', '.log', '.chk') to share

Source(s):
nil

Programming Languages used:
nil

Frameworks used:


8. ROOT FAQ Forum using Figma and Nextjs (plan to only be here temporarily since this is potentially a larger project that will have its own Github repo)

Summary about the project:
https://www.figma.com/file/3R7O2Tel3Sx53f5vtqH2sF/Practice-with-Figma-(by-re-creating-the-Whatsapp-UI%2C-Instagram-UI-and-others)?type=design&node-id=21-191&mode=design&t=nP8aI7L3aM7gsXgH-0 Check out my Practice with Figma website here!

An important rule on Figma is that you should never start anything from scratch! Always remember to take from references, and copy from existing website templates to boost the quality and the creation time of the website prototype!

https://www.figma.com/file/FKcGirm67sW9K86neDIfzP/SUTD-FAQ-Forum-(as-ROOTech)?type=design&node-id=0-1&mode=design&t=BoAsSR5G5ixDM1Cn-0 Check out the ROOT FAQ forum website here!

Source(s):

Programming Languages used:
nil

Frameworks used:
My Skills


NiCE Hack Hackathon official logo

Default Async2Secure SCA Toolkit software page to attack retrieved data

Incorrect target (hardware target e.g. XOR gate, Substitution-Box (SB), ShiftRow (SR)) guess shown with wrong key bytes in the Async2Secure SCA Toolkit software page

Correct target (hardware target e.g. XOR gate, Substitution-Box (SB), ShiftRow (SR)) guess shown with all correct key bytes in the Async2Secure SCA Toolkit software page

NiCE Hack Hackathon Certificate of Merit

(Additional screenshots can be found in the 'Screenshots of the Async2Secure SCA Toolkit software for Challenge 1.2' folder)

Summary about the project:
Took part in a 2-day cybersecurity hackathon called 'NiCE Hack Hackathon 2024' at National Technological University (NTU) in Singapore in a team of 2 under the University category with Chua Xing Han (here is his Github account), and achieved a Certificate of Merit (top 5 out of 45 teams).

From the NiCE Hack Hackathon 2024 official website: '‘NiCE Hack’ is a premier event jointly hosted by National Integrated Centre for Evaluation (NiCE) and School of Electrical and Electronic Engineering (EEE) of Nanyang Technological University, Singapore. A hackathon aimed at raising awareness and interest about cybersecurity among pre-university and Institutions of Higher Learning (IHLs) students, it also hopes to foster innovation and collaboration between peers. This dynamic hackathon will introduce side-channel attacks to our participants, challenging them to tackle challenges related to this field.'

The hardware security challenge of this cybersecurity hackathon was to carry out Side-Channel Attacks (SCA) to exploit (simulated) unintended information leaks from hardware implementations of cryptographic algorithms to retrieve sensitive data (e.g. encryption keys). Through this hackathon I learnt important skills such as attention to detail, pattern recognition (to recognise patterns in data in order select areas in the dataset to carry out Side-Channel Attacks (SCA)), basics of carrying out Side-Channel Attacks (SCA), some cybersecurity theory, some hardware security theory and their applications. Software used is Async2Secure SCA Toolkit.

Source(s):

Programming Languages used:
nil

Frameworks used:

About

A compilation of school projects I've done at SUTD consisting of various programming languages and frameworks.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published