Luke Han Status Report 3/15/2025

This week I have made significant progress on the camera and projector system. We have now received and assembled the pool table, allowing us to initiate testing with the camera and projector. I have conducted preliminary tests to assess calibration accuracy, image capture quality, and potential integration challenges. However, the frame for the system arrived late on Friday, preventing me from setting up the complete system. Therefore I am still a bit behind schedule, but plan to retrieve the frames from the package service and complete the setup on Monday, which will enable full system integration and more comprehensive testing.

Samuel Telanoff Status Report 3/15/25

This week, I spent the majority of my time finishing up the physics simulation. I created the function simulate_shot, which takes the state of the board and a given shot’s angle, power, and spin and then simulates how that shot would play out on an actual pool table. I spent a lot of time researching how to calculate the inelastic collision when different balls collide, and I believe I have a pretty good implementation of it. I also added optimizations to the shot simulation code, including vectorization through NumPy and handling ball collisions with spacial hashing, to get the average runtime of a single shot simulation down to ~25ms from ~75ms.

Additionally, I created a function simulate_shot_with_animation, that draws and simulates the shot onto a Matplotlib graph. This function and file take 5 consecutive shots with random power, angle, and spin and show the state of the board during and after each shot. I used this testing method to get a visual cue of how my simulation is working. I also used the animation to fine-tune the parameters — like friction, power, and collision coefficients — until I found one that was pretty similar to the pool table we ordered. Attached are pictures of what the animation looks like.

I will be spending my time this next week creating our greedy algorithm that chooses the best shot. I am currently on schedule and hope to be 100% done with implementing and testing this algorithm within 1-1.5 weeks so that we are ready to integrate and test MVP before carnival.

Luke Han Status Report 3/8/2025

Over the past two weeks, I have primarily worked on the camera and projector system as well as refined the design report. Before the break, I dedicated significant time to the design report, particularly working on the design requirements, design trade studies, and risk mitigation plans. Additionally, I contributed to the project budget, ensuring our resource allocation aligns with project constraints.

I conducted preliminary tests to the camera and projector to assess their capabilities. This included evaluating calibration accuracy, image capture quality, and potential integration challenges. However, our progress is currently hindered because our group has yet to receive the pool table, which was scheduled for delivery two weeks ago. As a result, I am not on track, and our timeline may be impacted until we can begin full system integration.

Team Status Report 3/8/25

As a team, the majority of our time these past two weeks was focused on the design report and beginning to implement our project. We spent significant time on the design report to make sure that we could best convey our idea of our project to the reader. Additionally, we went more in-depth into how our system works and how each part comes together: creating a comprehensive block diagram, function signatures for software subsystems, choosing and ordering the exact hardware parts we will be using, and more. The more in-depth research/development of our project has made it easier for us to actually begin and go through with implementation, as we will have a majority of it detailed in our design report.

As for implementation, we have started implementing the major software subsystems of our project — the CV and the Physics Simulation. The third software subsystem, the display mapping, will be completed after the physics simulation is finished. Unfortunately, we are in a bit of a roadblock in terms of our physical implementation. We’ve received the projector and camera that we will be using for our project, however, we have yet to receive the physical pool table we will be working on. When we asked the ECE mailing room if they had received the pool table package yet from Amazon, they said it was still delayed. We will be checking again tomorrow after we meet with Professor Brumley, and are hoping the pool table will be in ASAP.

Overall, we are making steady progress on our project despite being blocked. There are no changes to the schedule on the software side of our project, however, we will need to speed up the schedule for our physical side of the project due to not being able to work on it just yet.

Samuel Telanoff Status Report 3/8/25

For the past two weeks, I spent most of my time on coding and the design report. I put a significant amount of time into the design report before break. I spent the most time on the system implementation section of the design report, where I figured out what different subsystems are and how they would interact with each other. This included coming up with the function signatures of all our software (like getBalls or find_best_shot), figuring out how each function should work, and finally figuring out what each function should take in as input and output to best transfer data from subsystem to subsystem. Additionally, I began a little bit of coding on the physics simulation subsystem. I will be focusing the majority of my time this month on making sure the code for that is well put together. I am currently on schedule and hope to be done with coding by the end of this month so that we can integrate everything and be at MVP.

Kevin Kyi Status Report 03/08/2025

This week, I focused primarily on coding and documenting my progress to facilitate a smooth integration with the physics simulation portion. I detailed the physical layout/setup of the table, specifically highlighting the portions relevant to our CV computations. This included documenting the placement of corner stickers, which will be used to compute a more accurate homography for gathering positional coordinates. Additionally, I mapped the layout to real-world coordinates to provide better insight into the input data for the physics simulation.

Beyond coding, I have been closely communicating my progress with my teammates to ensure they understand the data transfer process. I am on track with my tasks and will aim to speed up my progress to allow more time for the later stages of our processing pipeline.