stared / quantum-game Goto Github PK
View Code? Open in Web Editor NEWQuantum Game (old version) - a puzzle game with real quantum mechanics in a browser
Home Page: http://v2016.quantumgame.io/
License: MIT License
Quantum Game (old version) - a puzzle game with real quantum mechanics in a browser
Home Page: http://v2016.quantumgame.io/
License: MIT License
As in title. You can move a mirror in place but clicking when it's in place activates drag and drop instead of rotation. Chrome version: 59.0.3071.115 64-bit, Windows 10.
If you beat a level, and quickly clicks the green arrow at the top, you will go to the next level. When the "You won!" popup then appears, you can click "next level" to progress one level more, thus skipping one level.
There is a small problem with some polarizers in this level.
The polarizers on (i=5, j=7) and (i=8, j=5) have names that do not match their images. Especially for the 5,7 polarizer this can be confusing because it would suggest no polarization adaptation is needed.
(observed in Chrome, Version 64.0.3282.186 (Official Build) (64-bit))
I attempted to design a 25/75 beam splitter and ran into a strange interference problem. I split the initial photon into 25%, 25%, and 50% beams without issue. I also managed to rearrange a 25% and 50% beam into two 37.5% beams (of equal phase). However, no matter how I try to merge those two beams through interference, I always end up with about 73% from one side of the half-silvered mirror and 2% from the other side.
At first I thought that one of the components was absorbing a fraction of the beam, causing the intensities to be slightly off. To that end, I've tried using a Mirror and a Coated 50/50 Beam Splitter; a Glass Slab, a Mirror and a 50/50 Beam Splitter (in case the Coated 50/50 Beam Splitter is to blame); and even some Quarter Wave Plates, Double Sugar Solution, Mirrors, and a 50/50 Beam Splitter (using circular polarization and sugar in case the Glass Slab is to blame). Each time, the result is the same: 73% leaves in the expected direction while 2% sneaks off at a right angle.
It seems like either there's something fundamental about interference that I'm missing, or there's a bug somewhere.
Analysis: The game reports the two 37.5% beams as (0.500 + 0.354i) and (-0.354 - 0.500i), giving them a intensity of 0.375316±0.0008545. It reports the 73% and 2% beams as (-0.604 - 0.604i) and (0.104 - 0.104i), giving them respective intensities of 0.729632±0.0012085 and 0.021632±0.0002085.
Below is a transcript of the quantum state as reported by the status message. Here is a copy of the level (pasted as .txt because Github doesn't like .json uploads). Any ideas?
(1.000)*|0,9,>|)
(0.707)*|1,9,>|) + (0.707i)*|1,9,^|)
(0.500)*|2,9,>|) + (0.500i)*|2,9,^|) + (0.500i)*|1,8,^|) + (-0.500)*|1,8,>|)
(0.354)*|3,9,>|) + (0.354i)*|3,9,^|) + (-0.707)*|2,8,>|) + (0.354i)*|1,7,^|) + (-0.354)*|1,7,>|)
(-0.354)*|4,9,^|) + (0.354i)*|3,8,^|) + (-0.707)*|3,8,>|) + (-0.354i)*|1,6,>|) + (-0.354)*|2,7,>|)
(-0.354)*|4,8,^|) + (-0.500)*|3,7,>|) + (-0.707)*|4,8,>|) + (-0.354i)*|2,6,>|)
(-0.354)*|4,7,^|) + (-0.500)*|4,7,>|) + (-0.707)*|5,8,>|) + (-0.354i)*|3,6,>|)
(-0.500i)*|4,6,>|) + (-0.500)*|5,7,>|) + (-0.500)*|6,8,>|) + (-0.500i)*|6,8,^|)
(0.500i)*|5,6,^|) + (-0.500)*|6,7,>|) + (-0.500)*|7,8,>|) + (-0.500i)*|6,7,^|)
(0.500i)*|5,5,^|) + (-0.354)*|7,7,>|) + (-0.354i)*|7,7,^|) + (-0.500)*|8,8,>|) + (-0.500i)*|6,6,^|)
(0.500i)*|5,4,^|) + (-0.354)*|8,7,>|) + (-0.354i)*|7,6,^|) + (0.500)*|9,8,^|) + (0.500i)*|6,5,>|)
(0.500i)*|5,3,^|) + (-0.250 + 0.354i)*|9,7,>|) + (0.354 - 0.250i)*|9,7,^|) + (-0.354 - 0.250i)*|7,5,^|) + (0.250 + 0.354i)*|7,5,>|)
(0.250 - 0.354i)*|10,7,^|) + (0.354 - 0.250i)*|9,6,^|) + (0.354 + 0.250i)*|7,4,>|) + (0.250 + 0.354i)*|8,5,>|)
(0.250 - 0.354i)*|10,6,^|) + (0.354 + 0.500i)*|9,5,>|) + (0.354 + 0.250i)*|8,4,>|)
(0.250 - 0.354i)*|10,5,^|) + (0.354 + 0.500i)*|10,5,>|) + (0.354 + 0.250i)*|9,4,>|)
(0.500 + 0.354i)*|10,4,>|) + (-0.354 - 0.500i)*|11,5,^|)
(0.104 - 0.104i)*|11,4,>|) + (-0.604 - 0.604i)*|11,4,^|)
(0.104 - 0.104i)*|12,4,>|) + (-0.604 - 0.604i)*|11,3,^|)
No goals, no judgement.
Considering using https://www.jsonstore.io/ (learnt from https://news.ycombinator.com/item?id=16763677) for saving and sharing custom levels.
Levels are already JSON, and while it is possible to download them, so far it is not possible to easily share a level.
An essential component of quantum mechanics is particle-wave dualism, or collapse. However, there is nothing in the gameplay that exploits it. Sure, probabilities are displayed and taken into account at the end when displaying which detector has worked, which bomb has exploded, or what else has absorved the photon, but this information is irrelevant to the gameplay, because it does not affect the outcome, i.e. whether the level is solved. The game is thus about light intensity, polarization and phase, not individual photons.
Clicking just causes mirrors to be dragged again. Works fine in Firefox.
Hi!
It is an open source project that would benefit from collaboration. So many ideas, but working alone is hard - so it stayed dormant for the last year. I am into games because I love instant feedback and interactions!
There are some bigger plans:
If you can help with one of those (or another ones), let me know!
Write a comment, saying which ones you would like (and what is your experience in these task).
I'm trying to look at the state of the system as it evolves during free play, but the message "Goal: no goals! [...]" keeps replacing it, making it impossible to follow what is happening without taking screenshots.
I puzzled my way through 34 levels without really understanding what I was doing. The grid layout, and the straight-forward physics of mirrors constrain your choices enough that you can kindof just brute force through various permutations of things. It would be nice to have a bit more background in what this game models. Also, while the game is fun, it's not clear exactly how this relates to building quantum computers.
I was trying to use the freeplay mode to create an example setup. It would be useful if I could label different parts, similar to how the levels include labels.
Steps to reproduce:
Start 1st level and build, say, a working solution (so that the photon is moving for a longer time)
Click laser
While photon is moving, click the button to switch from orthogonal to oscilloscope mode
Observed behavior: The graphics does not change. Only when I click on the laser again for the next time, the representation of the photon changes.
Expected behavior: The representation of the photon changes immediately.
Possible fixes: Either change the representation of the photon immediately (ideal solution) or deactivate the orthogonal/oscilloscope switch button while photon is moving.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.