acheamponge /
Cool-Python-Modules
This is a repo of fun Python modules I experimented with when I was bored of only using Data Science modules
Loading repository data…
realmichaelye / repository
I was bored in my grade 10 compsci class, so instead of making a 2D game for my summative, I decided to learn Linear Algebra and 3D projection and made a 3D space shooter game with only numpy and pygame!
I was bored in my grade 10 compsci class, so instead of making a 2D game for my summative, I decided to learn Linear Algebra and 3D projection and made a 3D space shooter game with only numpy and pygame.
I approached my 3D Game Shooter project knowing it will be an extremely difficult challenge and serious effort is required in 1. Learning the underlying math(linear algebra: matrices, dot products, cross products...) of 3D to 2D projection, 3D rotation, 3D movement, etc… and 2. Converting the underlying math into an efficient, runnable program using only 2 external libraries, pygame and numpy; all without copying pasting code from the internet. Although I had to spend tens of hours learning linear algebra from scratch and re-coding the entire program dozens of times to make it more efficient, it has elevated my understanding of computer science and mathematics in a profound way. Now I will go in depth about how I handled each stage of the Software Development Cycle.
In the planning phase, I studied the feasibility of creating this program. At first, I cracked the code for 3D to 2D projection (after a thought experiment done thinking about how to project 4D onto a 3D space and then project that on a 2D plane), however that’s only the tip of the iceberg.

My program involves rotating and moving the player’s vision freely in 3D, that was completely out of my field of expertise until I discovered linear algebra. I spent tens of hours watching 3Blue1Brown and Khan Academy’s videos to gain an intuitive understanding of Linear Algebra. Once I’ve understood the math, it’s clear the program is feasible on a purely mathematical level. All I need to do left is translate and organize the formulas into python which is in my field of expertise. Therefore, the program is feasible and we can move onto the next stage.
In the analysis phase, I broke the program down to different parts and analyzed serious programming challenges. Here is the analysis for the programming challenges.
*Challenge: Since the coordinate system allows the player to freely move around and look around in 3D space, the math isn’t as simple as checking if(sphere.z<player.z) since when the player’s yaw and pitch is changed, to find whether an object is behind the player, you must check if it’s behind in respect to the plane at which is rotated according to pitch and yaw: This magnifies such a simple problem to an extremely difficult linear algebra problem.
In the design phase, I used the problems found in the analysis stage and figured out the most efficient solutions to those problems.
Every programmer knows your code doesn’t always go as planned, therefore in my implementation phase, I had to make serious modifications to the design of my program. Here are the major changes and modifications to the previous design.
Selected from shared topics, language and repository description—not editorial ratings.
acheamponge /
This is a repo of fun Python modules I experimented with when I was bored of only using Data Science modules
sugaroidbot /
The not-that intelligent, but cute Artificially Intelligent bot, created when I was bored.
sakkarose /
Personal custom wordlists & rule-based attacks because I was bored.
CruelDev69 /
A Rock Paper Scissor Game made for fun because I was bored and I didn't know what to make.
madhead341 /
Encodex is a custom encoding package in python that i coded because i was bored.
MitjaCH /
A minigame i made in python because i was bored