over the past century, many of the greatest archaeologists from around the world have been marveled by stonehenge and have made significant progress in discovering the ways ancient britons moved the massive stones to the site. However, there has been little engineering analysis done in comparison with the immense archaeological studies conducted on the site. this project aims to develop engineering and physics based simulations on the proposed methods of moving the stones in order to get an engineering insight into the mystery.
In order to perform an engineering analysis on the Stonehenge Construction, I first drew Sketches of the Various Proposed Methods and The Underlying Physics I might have to Analyze in Order to create simulations. I took a look at the moments and forces acting about some of the main features of the system before translating it into Code.



From these initial sketches and ideas, I had to create Various simulations that would model How the stone-system would move in each method, while allowing a user-controlled interface to change certain parameters (for example, force applied on the system, friction parameters, number of logs, etc.). Below is the main setup for the ball-bearing method which is analogous to most of the other simulations. I used the tkinter module to format the user interface.



The simulation is based on interpolation, as is many for this type of modeling. In doing so, I need functions to perform the Arithmetic and physical calculations for the key variables in order to update and utilize the states in the main loop. Below are some of those functions, again tailored for the Ball-bearing method.


Lastly, the simulation is dependent on the continuous looping of the main display, using the current state of the main variables to advance the system and updating those variables for their use in the next loop. Below are some of the operations that occur in this main loop, specifically for the ball-bearing method but translatable to the other methods.



After Conducting this Process on several different methods, I created a video showing how the simulation would run for certain loads acting on the system in all the different methods. Below is a link to that video:
Below are some images of the simulation and its important features:





What i learned
A Physics-heavy simulation requires that you draw out the simulation and symbolically calculate the variables of interest before moving on to the code. Drawing things out helps to organize what sort of functions you might need and what kind of calculations are to be made within the algorithm.
In simulation building, there is a lot of research involved when planning out the code. For instance in this project, I had to gather data to develop good estimates of the coefficients, and I had to research how each system would be arranged and the dimensions and relative weight distributions associated with them. Only then can you begin planning out the code.
When using object-oriented programming to build a simulation from scratch involving the use of external modules/libraries, an interpolating approach where certain updates are incremented per unit of time is essential.
Next Steps
Developing an archaeologically enlightening Method that may not be backed as a method involved in the Stonehenge movement but is likely to be the method for the easter island moai statues. To the right is a video of what i have so far. i am modeling this method off of a simple harmonic motion pattern that i believe is key to the statue's movement.
A Note from Umar
I avoid simply placing my computer science projects on GitHub. I personally believe that GitHub doesn't do as well of a job as showcasing the process of constructing a computer science project as a portfolio would. Therefore, I aim to display all my personal and internship projects on this site, showing not only my code but also my thought process in constructing the program.