Couldn't find the answer online to how the parameter k_c scales with dimension and we thought it was a cool challenge.
What it does
Simulates Anderson localization by allowing the user to modify k (values 1 to 30) and the dimension (values 2 and 3) to see the effect on the lattice.
How I built it
On Python (numpy) we did all the computations which involved finding the eigenstates of a Hamiltonian. On JS (p5) we coded UI on the browser. With Socket.io we got the JS script and Python script to communicate.
Challenges I ran into
-Optimizing the computation in Python was challenging since we were dealing with big inputs. -2 of our teammates didn't know how to program in JS, which made the animation progress slow. -None of our teammates had knowledge with connecting backend and frontend which made the communication between the JS and Python script a challenge.
Accomplishments that I'm proud of
Teresa: Finally learning on how to connect frontend and backend and actually being successful after many attempts. KC: Implementation of finding the nearest neighbours of each lattice point and generally understanding the math behind the whole idea. Bastien: The cool visualization! Stephen: To have worked with a nice team, and that we persevered despite the challenges.
What I learned
Teresa: How to work with Socket.io KC: Interactions between Python and JS is complicated and that optimizing the code is not that easy but absolutely necessary. Stephen: How to work with p5.js Bastien: That making matrices was hard. A lot of the work was made on paper beforehand to understand how to get to what we wanted.
What's next for Anderson's Game of Electrons
-Simulate for higher dimensions -Finding a way to estimate more precisely k_c -Make it more interactive as if it was a game