Michael Status Report 04/12

This week, I focused on overhauling and enhancing the hint system to make it more educational and user-driven. The newly implemented hint functionality now highlights all existing numbers within the selected cell’s row, column, and 3×3 grid. This visual aid helps users apply the process of elimination, allowing them to see which numbers are already present and narrowing down what values are still valid. Instead of revealing the correct number directly, the system now supports players in thinking through possibilities on their own, aligning more closely with the goal of promoting learning and problem solving.

In addition to visual guidance, I introduced footnotes for number input, allowing users to jot down potential candidates for each cell. This mimics a common practice used in traditional Sudoku solving and encourages strategic thinking without automation. To further enhance the educational value, the terminal now displays an explanation of the hint logic in real-time. For example, it shows why a number is invalid in a given cell by referencing conflicts with the row, column, or 3×3 grid. This explanatory feedback supports users in understanding the rationale behind Sudoku constraints and builds their confidence in solving puzzles independently.

Looking ahead, I’m considering expanding the user interface to include a zoomed-in view of the selected cell and its 3×3 section for better visibility and focus. I also plan to introduce on-screen explanations that clarify the logic behind constraints – such as “Because 3 is in the same row, it can’t go here” to help users internalize Sudoku rules more intuitively. Finally, I want to make the game more user-friendly overall by adding an introductory guide that explains the basic rules and objectives, along with small UI improvements to make the system feel more polished and accessible.

Team Status Report 04/05

This past week, our team focused on preparing for and presenting at the interim demo, where we showcased a functional early version of our interactive Sudoku system. Although the design remains in a preliminary state, all major components – including the capacitive touch sensor, numpad, and projector – are working and successfully interfacing with our software. Moises ensured that the capacitive grids were responsive in time for the demo, and began planning the next iteration of the 9×9 touch grid, including material research and initial enclosure designs. Acrylic sheets were ordered for laser cutting, and early sketches for a housing prototype are in progress. Meanwhile, both Michael and Winstone focused on software features and integration. Winstone completed the connection between the capacitive touch grid and the Raspberry Pi using Pygame, eliminating the need for traditional input devices and allowing interaction through touch and the numpad.

On the software side, we implemented a rudimentary version of the hint system, which currently reveals the correct answer for a selected cell. While functional, we recognize that this approach is too revealing for a learning-focused application, and both Michael and Winstone are exploring more educational alternatives. Ideas include displaying candidate numbers based on Sudoku constraints or highlighting rows and cells to guide problem-solving without directly providing answers. Additionally, work has begun on a multi-functional side screen to display a home menu and options, and early discussions have started around implementing an undo feature via a stack-based approach. Our next goals are to finalize a consistent and accurate 9×9 touch grid, iterate on the enclosure design, and refine our software to enhance both interactivity and educational value.

Michael’s Status Report 04/05

This week was our interim demo week where we had to explain and showcase the current version of our design. Our current system, while still in a rough design stage, is a good minimal viable product which successfully demonstrates the core functionality we set out to implement. The capacitive touch sensor is mostly operational, and both the numpad and projector are communicating effectively with our software. The only problem is that the capacitive grid sensors aren’t working in unison so we had to separate our row and column grids – now our focus is now shifting toward refining features and improving integration.

On my end, I’ve implemented a basic version of the hint system. Currently, it retrieves the correct number from the solved puzzle and simply fills it into the selected cell. While this meets the minimum requirement, it’s admittedly too revealing for an educational tool that aims to promote self-solving, learning, and problem solving. I’ve been thinking more about how to redesign this feature to be more helpful without outright giving away answers. One idea is to generate and display a list of possible candidate numbers for a selected cell, based on Sudoku rules – specifically, which numbers are already present in the same row, column, or 3×3 grid. Another possibility is to use subtle visual cues, such as highlighting particular rows or cells, to guide the user’s thought process without solving the puzzle for them. These are still early ideas, but I’ll be exploring them more deeply in the coming days.

Michael Status Report 03/29

This week was a week before demo, so I put my focus into completing and making sure that the software I was in charge of was ready for demo week. Quite fortunately, significant progress was made in finalizing the interactive Sudoku program.

The primary development tasks included implementing the core functionality of the game using Pygame and integrating it with a Raspberry Pi for the final project demonstration. Additionally, the program was tested for visual clarity when projected onto a surface using a stand. The game now features a complete initialization process where a new Sudoku puzzle is generated using the py-sudoku library. Users can select different difficulty levels, which are adjustable to suit their preferences. The initial state of the puzzle is stored, ensuring that pre-filled cells remain unaltered during gameplay. User interaction is fully implemented, allowing players to select cells with a mouse click and input numbers using the numeric keys (1-9).

Players can clear entries using the backspace or delete keys. Visual feedback has been incorporated, with selected cells highlighted for easy identification. Errors are detected using custom logic, and invalid cells are highlighted with a distinct color to provide immediate feedback. Additional functionality includes game management options. Users can reset the puzzle to its initial state, generate a new puzzle with a different difficulty level, and even use the built-in solver from py-sudoku to automatically complete the puzzle. A helpful hint feature is also available, providing the correct number for a selected empty cell. Pre-filled numbers are displayed in black, while user-input numbers appear in gray. A winning message is displayed when the puzzle is successfully completed, and the current difficulty level is shown at the bottom of the screen.

On Thursday, the team conducted a successful test to ensure the Pygame program projected correctly onto the wall. The display’s visibility and alignment were adjusted using a stand, ensuring it was clear and properly positioned for the final demonstration. While the capacitive grid touch sensor requires further adjustments, most of the software components are nearing completion and are ready for the demo. Our team also aims to meet in Sunday in order to finalize all moving parts and make sure they are ready for demo, as well as deciding how we will verbally present our project for the demo.

Michael’s Status Report 03/22

This week, I attended the ethics lecture and engaged in discussions with my own team as well as other teams about potential challenges that could arise if our technology were widely integrated into public use. One of the key points of discussion was the potential for over-reliance on automated Sudoku solvers, which could diminish traditional problem-solving engagement.

On the technical side, I continued refining the game’s logic and functionality using Pygame. The grid system and number input mechanics were improved, along with visual enhancements like cell selection highlighting. Keyboard controls were also integrated, allowing users to input numbers and clear cells more intuitively. A significant part of my pondering revolved around defining the difficulty levels for the game. I explored different approaches, such as basing difficulty solely on the number of pre-filled cells versus considering strategic placement to ensure a balanced challenge.

Moving forward, I aim to fine-tune these difficulty settings to provide a more engaging experience while also addressing previous feedback regarding the clarity of our project documentation. Further refinements to the user experience, such as smoother interactions and enhanced feedback mechanisms, are also on my agenda. As we continue development, I am keeping ethical considerations in mind, ensuring that our project encourages thoughtful engagement rather than passive reliance on technology.

Team Status Report 03/15

This week, our team made progress on multiple fronts, including refining our report, discussing ethical considerations, and advancing technical development.

Feedback on our design report highlighted the need for greater clarity in conveying our project’s goals and execution. While our presentation successfully communicated our ideas, the report did not fully capture the same level of clarity. A key takeaway was that our written work should stand independently as a strong argument, avoiding vague statements that could invite unnecessary scrutiny. Moving forward, we will work on improving the structure and precision of our final report to ensure it effectively represents our project.

Beyond documentation, we also explored the ethical implications of our Sudoku solver. Through team discussions and our ethics assignment, we considered how increased accessibility to digital solvers could lead to over-reliance on automation, potentially diminishing engagement with traditional puzzle-solving. This prompted us to reflect on the broader impact of our work, reinforcing the importance of responsible design choices.

On the technical side, the team worked on integrating different components of the system. Winstone developed and tested the projection code, successfully displaying a 9×9 Sudoku grid with a cursor and possible inputs. Moises focused on refining the touchpad functionality, shifting from polling to an interrupt-based system to improve responsiveness and accuracy. While the transition introduced new challenges, such as handling missed inputs, it ultimately led to a more efficient input system. Meanwhile, Michael implemented additional features, including an automatic solver and random puzzle generation, further enhancing the system’s functionality. As a team, we also tested the projection setup and discussed ways to improve the coordination between the projected grid and the physical board. Moving forward, our next steps will involve fine-tuning the touch sensor, optimizing user interactions, and ensuring smooth integration between all hardware and software components.

Michael’s Status Report 03/15

This week, we received feedback on our report, which was overall positive. However, one key criticism was that the clarity of our project, as presented, was not fully reflected in the written report. A particularly useful piece of feedback highlighted the importance of ensuring that our paper stands as a strong argument on its own, without raising unnecessary questions or criticisms. This means we need to be more precise in our wording to avoid ambiguity. On a personal note, I did not receive much criticism on the sections I worked on, which was reassuring.

In addition to the report, we worked on our ethics assignment, which encouraged us to think more deeply about the potential consequences of our project. One key concern we discussed was that if our Sudoku solver became too popular, it could lead to people becoming overly reliant on digital solvers and less engaged with traditional puzzle-solving methods. This assignment was a great opportunity to reflect on the broader ethical implications of our work and consider how technological convenience can sometimes have unintended consequences.

On the technical side, we made significant progress in assembling the projector and board setup. Winstone completed a version of the 9×9 grid with a cursor and possible inputs, which we projected onto the board. We had discussions about how to properly align the projection with the physical board to ensure smooth interaction. Meanwhile, I worked on implementing additional features, including an automatic Sudoku solver and a random puzzle generator. These features will further enhance the usability of our system and bring us closer to a fully functional prototype.

Michael’s Status Report 02/22

This week was dedicated to our design presentation, and I had to present. I spent a good amount of time preparing the slides, ensuring they were filled with robust about our project’s key ideas and progress. I also anticipated questions from the professor to identify potential weak points that the professors might raise, which pushed me to clarify and strengthen our core concepts. For example, I delved into the specifics of our testing approach for intensity and brightness, researching the use of a lux meter to compare lux values and making sure the ratio is over 3x, which I believe offers a reliable method for our tests. This whole process not only made our presentation more robust but also deepened my understanding of the project’s overall direction. In addition to preparing for our own presentation, I took time to provide thoughtful feedback on other projects via a Google form, further contributing to our collaborative environment.

After the presentation, I shifted my focus to furthering our project work by diving into research on how to feed continuous real-time data into the Vankyo Burger 101 projector. Admittedly, I was not able to make significant progress as far as purely writing code went due to many obligations, but I was able to explore various communication protocols and data interfaces. This included exploring both the realms of wired and wireless to determine the most efficient way to ensure a steady stream of high frequency data. I simulated different data flow scenarios to better understand potential challenges, such as latency and data integrity issues, and began drafting technical documentation to outline a suitable architecture and the necessary API requirements. I believe that this process gave me a further understanding of enhancing the projector’s functionality, and I’m confident that with further refinement, this approach will significantly improve our project’s performance. Overall, it’s been a aptly productive week as far as presentation as well as further exploration on areas of the project that I needed further research on.

Team Status Report 02/15

For the three-part question: A (public health) was written by Michael, B (social factors) was written by Winstone, C (economic factors) was written by Moises.

This week, our team made a few major changes to our design – a major one is that we decided to remove the use of OpenCV and a camera for Sudoku board detection. Instead of relying on image processing, we will now load the Sudoku board file directly, simplifying our system and reducing unnecessary complexity.

In addition, we have improved the interaction method. Rather than using arrow keys to navigate through 81 cells – which could be tedious – we decided to implement a capacitive touch sensor grid. This involves laying copper foil and dielectric materials to create 81 capacitors, allowing users to interact naturally by selecting cells through touch. The projected Sudoku board will align with this grid to create a real-time interactive experience, where users can select a cell, enter a value, and seamlessly move to another.

Additionally, we had a team meeting on Friday to finalize the project’s direction and establish a more robust and reasonable set of key testing metrics – for example, we decided that the projection system should maintain an accuracy of within 1mm. To ensure that our project timeline reflects the changes we made to our design, we are also in the process of updating our Gantt chart. In terms of parts – we have ordered the Raspberry Pi that will serve as the core processing unit for our design.

Moving forward, our focus will be on implementing the capacitive touch grid system and integrating it with the Raspberry Pi. We will also continue refining the projection system to optimize accuracy and responsiveness. Our software development plan will be adjusted to align with these design modifications, and we will begin testing the board interaction mechanics before moving into full system integration.

Michael Status Report 02/15

This week, I made several adjustments to the software design in response to our team’s decision to move away from using OpenCV and a camera for board detection.

Since the Sudoku board will now be loaded from a file rather than scanned, I had to modify how the software initializes and manages board data. This required reworking the logic for handling user inputs and ensuring that the projected grid updates dynamically as users interact with it. Additionally, I’ve been considering how to efficiently update and maintain a constantly changing 9×9 grid in real-time as users input values. One possible approach is using Matplotlib for rendering the board updates, but other alternatives such as Pygame, Tkinter Canvas, or drawing functions could also be explored to ensure smooth real-time updates.

Speed optimization is another critical factor, as we need to ensure that changes appear on the projected board with minimal delay. We are currently targeting an update rate of 10 milliseconds, so I will be focusing on implementing a lightweight rendering solution that meets this requirement. I’ve also ordered the projector, and once it arrives, we can begin integrating the hardware with the software and refining the display logic. Another key aspect I’ve been pondering on is the undo/reset functionality, allowing users to revert their actions efficiently. One potential approach is implementing a history stack, where each board state is stored, enabling users to step back to previous configurations.

Health (A):

Our interactive system promotes cognitive health by providing a real-time, projected Sudoku board with capacitive touch functionality and thus offering a more engaging alternative. Mentally stimulating activities like Sudoku can support cognitive well-being and help slow cognitive decline, making our system beneficial for brain capacity and mental health. To ensure safety, we are incorporating proper insulation, minimal exposed wiring, and low-voltage operation to prevent electrical hazards. Additionally, our design enhances welfare by making Sudoku more accessible and intuitive, particularly in educational settings, where it can help students develop critical thinking and problem-solving skills in an interactive, hands-on way.