PyWeek - Quantograph - feedback
Tee
Cosmologicon
Very cool, I've never played with a quantum computation toy before. I read the tutorial but in the end it's definitely a bit mystifying. I would have liked to see some more operations other than rotation about the y-axis, and maybe something simpler like a 2x2 image so I could try to wrap my mind around what's happening.
DR0ID
well, not a very fun game....
not sure if the resulting animation was real or faked...
not sure how it relates to the theme.
mauve
I quite enjoy a toy like this sometimes, but I think there are three limitations to Quantograph:
Firstly, I don't see significant changes based on the sliders I pick. I tweaked some dials and got an animation that fades in and out. I would like example settings that show some interesting results, and possibly also a "randomize" button.
Second, it takes around 20s to render a 20 frame, 5 second animation. This means your experience with it is mostly waiting, and that's not fun. It also means that I can't easily find the interesting settings.
Thirdly, I lack the framework to interpret what I'm seeing. I see that it's quantum computation but it's clearly not running on a quantum computer. So what am I seeing? You say "you are not expected to understand them!" which is fine, but I need a little more than that, at least in layman's terms, to get a sense of the wonder that you are hinting at.
asrp
Dependencies failed to install for me and the Binder never finished loadin.g
So I looked through the tutorial.
The result seem to say more about the mapping/encoding chosen (independent RGB channels, normalization and back) into some tensor product of complex spaces than pixel animation or quantum computing.
For the intermediate frames, most pixels are all. My best guess is that this is s from the normalization:
> To do this, we'll assume that, for every colour channel, there is at least one pixel with the value 255. This means that the maximum probaility for each colour channel will be given the value 255, and all other values are assigned proportionally.
If we just wanted fading from the start image to the end image, any continuous function would have worked just as well.
Its nice that we are getting more experimental games like this, but I don't quite see either the visual appeal of the result or the connection to quantum computing.
assertivist
I would feel bad rating this as a game, because it isn't even an attempt at one. Quantum computing is, of course, totally cool, but I'm struggling to see the point in its application here. I moved some sliders and made an animation, but I don't really understand why it is important that these operations (?) be done with qubits.
ntoll
On latest Ubuntu, using Python 3.7 I get:
$ python quantograph.py
Do you want to install the required package 'qiskit'? (y/n)
y
Collecting qiskit
Downloading https://files.pythonhosted.org/packages/37/13/62c8421098faf49cbd380911986b1c9eebead08518084faa9a0dbbfc71c1/qiskit-0.8.0.tar.gz
Collecting qiskit_terra==0.7.1 (from qiskit)
Downloading https://files.pythonhosted.org/packages/71/2b/b66577f9c65c3a1d047dc11e77e377a9c014f465d6040b346ead0dff99e0/qiskit_terra-0.7.1-cp37-cp37m-manylinux1_x86_64.whl (6.6MB)
100% |████████████████████████████████| 6.6MB 2.2MB/s
Collecting qiskit-aer==0.1.1 (from qiskit)
Downloading https://files.pythonhosted.org/packages/6a/bd/3d615fbbd906da3e2f63c3fe2a161ee13393bc74487854797c8a21dd9f0e/qiskit_aer-0.1.1-cp37-cp37m-manylinux1_x86_64.whl (18.5MB)
100% |████████████████████████████████| 18.5MB 1.6MB/s
Collecting qiskit-ignis==0.1.0 (from qiskit)
Downloading https://files.pythonhosted.org/packages/cf/78/9f201689069a599c02d676567b55871104a61169857d7474321426f3d603/qiskit_ignis-0.1.0-py3-none-any.whl (66kB)
100% |████████████████████████████████| 71kB 8.1MB/s
Collecting requests-ntlm>=1.1.0 (from qiskit_terra==0.7.1->qiskit)
Downloading https://files.pythonhosted.org/packages/03/4b/8b9a1afde8072c4d5710d9fa91433d504325821b038e00237dc8d6d833dc/requests_ntlm-1.1.0-py2.py3-none-any.whl
Collecting scipy!=0.19.1,>=0.19 (from qiskit_terra==0.7.1->qiskit)
Downloading https://files.pythonhosted.org/packages/3e/7e/5cee36eee5b3194687232f6150a89a38f784883c612db7f4da2ab190980d/scipy-1.2.1-cp37-cp37m-manylinux1_x86_64.whl (24.8MB)
100% |████████████████████████████████| 24.8MB 2.3MB/s
Collecting networkx>=2.2 (from qiskit_terra==0.7.1->qiskit)
Downloading https://files.pythonhosted.org/packages/f3/f4/7e20ef40b118478191cec0b58c3192f822cace858c19505c7670961b76b2/networkx-2.2.zip (1.7MB)
100% |████████████████████████████████| 1.7MB 7.4MB/s
Collecting sympy>=1.3 (from qiskit_terra==0.7.1->qiskit)
Downloading https://files.pythonhosted.org/packages/dd/f6/ed485ff22efdd7b371d0dbbf6d77ad61c3b3b7e0815a83c89cbb38ce35de/sympy-1.3.tar.gz (5.9MB)
100% |████████████████████████████████| 5.9MB 1.7MB/s
Requirement already satisfied: numpy>=1.13 in /home/ntoll/.virtualenvs/pyweek/lib/python3.7/site-packages (from qiskit_terra==0.7.1->qiskit) (1.16.2)
Collecting marshmallow<3,>=2.16.3 (from qiskit_terra==0.7.1->qiskit)
Downloading https://files.pythonhosted.org/packages/bc/b4/f54f8533aad0645431bfda2cc3d20913a305779c80f8cb71229e8b615c5b/marshmallow-2.19.2-py2.py3-none-any.whl (50kB)
100% |████████████████████████████████| 51kB 8.7MB/s
Collecting pillow>=4.2.1 (from qiskit_terra==0.7.1->qiskit)
Downloading https://files.pythonhosted.org/packages/c1/e6/ce127fa0ac17775bc7887c432ffe945c49ae141f01b477b7cd5e63b16bb5/Pillow-6.0.0-cp37-cp37m-manylinux1_x86_64.whl (2.0MB)
100% |████████████████████████████████| 2.0MB 6.7MB/s
Collecting marshmallow-polyfield<4,>=3.2 (from qiskit_terra==0.7.1->qiskit)
Downloading https://files.pythonhosted.org/packages/fa/ba/6406b8cce3e42b2838d234310c3605627083bbb8f71dcc312c616480fe92/marshmallow_polyfield-3.2-py2.py3-none-any.whl
Collecting ply>=3.10 (from qiskit_terra==0.7.1->qiskit)
Using cached https://files.pythonhosted.org/packages/a3/58/35da89ee790598a0700ea49b2a66594140f44dec458c07e8e3d4979137fc/ply-3.11-py2.py3-none-any.whl
Collecting psutil>=5 (from qiskit_terra==0.7.1->qiskit)
Downloading https://files.pythonhosted.org/packages/2f/b8/11ec5006d2ec2998cb68349b8d1317c24c284cf918ecd6729739388e4c56/psutil-5.6.1.tar.gz (427kB)
100% |████████████████████████████████| 430kB 9.2MB/s
Requirement already satisfied: requests>=2.19 in /home/ntoll/.virtualenvs/pyweek/lib/python3.7/site-packages (from qiskit_terra==0.7.1->qiskit) (2.21.0)
Collecting jsonschema<2.7,>=2.6 (from qiskit_terra==0.7.1->qiskit)
Using cached https://files.pythonhosted.org/packages/77/de/47e35a97b2b05c2fadbec67d44cfcdcd09b8086951b331d82de90d2912da/jsonschema-2.6.0-py2.py3-none-any.whl
Collecting ntlm-auth>=1.0.2 (from requests-ntlm>=1.1.0->qiskit_terra==0.7.1->qiskit)
Downloading https://files.pythonhosted.org/packages/8e/5b/4047779fb456b0de503c4acb7b166becf2567efb772abb53998440791d3c/ntlm_auth-1.2.0-py2.py3-none-any.whl
Collecting cryptography>=1.3 (from requests-ntlm>=1.1.0->qiskit_terra==0.7.1->qiskit)
Using cached https://files.pythonhosted.org/packages/5b/12/b0409a94dad366d98a8eee2a77678c7a73aafd8c0e4b835abea634ea3896/cryptography-2.6.1-cp34-abi3-manylinux1_x86_64.whl
Collecting decorator>=4.3.0 (from networkx>=2.2->qiskit_terra==0.7.1->qiskit)
Using cached https://files.pythonhosted.org/packages/5f/88/0075e461560a1e750a0dcbf77f1d9de775028c37a19a346a6c565a257399/decorator-4.4.0-py2.py3-none-any.whl
Collecting mpmath>=0.19 (from sympy>=1.3->qiskit_terra==0.7.1->qiskit)
Downloading https://files.pythonhosted.org/packages/ca/63/3384ebb3b51af9610086b23ea976e6d27d6d97bf140a76a365bd77a3eb32/mpmath-1.1.0.tar.gz (512kB)
100% |████████████████████████████████| 522kB 7.2MB/s
Requirement already satisfied: idna<2.9,>=2.5 in /home/ntoll/.virtualenvs/pyweek/lib/python3.7/site-packages (from requests>=2.19->qiskit_terra==0.7.1->qiskit) (2.8)
Requirement already satisfied: certifi>=2017.4.17 in /home/ntoll/.virtualenvs/pyweek/lib/python3.7/site-packages (from requests>=2.19->qiskit_terra==0.7.1->qiskit) (2019.3.9)
Requirement already satisfied: urllib3<1.25,>=1.21.1 in /home/ntoll/.virtualenvs/pyweek/lib/python3.7/site-packages (from requests>=2.19->qiskit_terra==0.7.1->qiskit) (1.24.1)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /home/ntoll/.virtualenvs/pyweek/lib/python3.7/site-packages (from requests>=2.19->qiskit_terra==0.7.1->qiskit) (3.0.4)
Requirement already satisfied: six>=1.4.1 in /home/ntoll/.virtualenvs/pyweek/lib/python3.7/site-packages (from cryptography>=1.3->requests-ntlm>=1.1.0->qiskit_terra==0.7.1->qiskit) (1.12.0)
Collecting cffi!=1.11.3,>=1.8 (from cryptography>=1.3->requests-ntlm>=1.1.0->qiskit_terra==0.7.1->qiskit)
Using cached https://files.pythonhosted.org/packages/a7/3f/2667a1516d935938245bd256b56a2f96d739ac3683e6778380f06c6e4c79/cffi-1.12.2-cp37-cp37m-manylinux1_x86_64.whl
Collecting asn1crypto>=0.21.0 (from cryptography>=1.3->requests-ntlm>=1.1.0->qiskit_terra==0.7.1->qiskit)
Using cached https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl
Collecting pycparser (from cffi!=1.11.3,>=1.8->cryptography>=1.3->requests-ntlm>=1.1.0->qiskit_terra==0.7.1->qiskit)
Building wheels for collected packages: qiskit, networkx, sympy, psutil, mpmath
Building wheel for qiskit (setup.py) ... error
Complete output from command /home/ntoll/.virtualenvs/pyweek/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-k5zzp4th/qiskit/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-rdgju6uh --python-tag cp37:
running bdist_wheel
----------------------------------------
Failed building wheel for qiskit
Running setup.py clean for qiskit
Building wheel for networkx (setup.py) ... done
Stored in directory: /home/ntoll/.cache/pip/wheels/68/f8/29/b53346a112a07d30a5a84d53f19aeadaa1a474897c0423af91
Building wheel for sympy (setup.py) ... done
Stored in directory: /home/ntoll/.cache/pip/wheels/6c/59/86/478e3c0f298368c119095cc5985dedac57c0e35a85c737f823
Building wheel for psutil (setup.py) ... done
Stored in directory: /home/ntoll/.cache/pip/wheels/86/36/f4/e1fc49f198c623b8dc2156e80011a52f19a959d538f6b1a5db
Building wheel for mpmath (setup.py) ... done
Stored in directory: /home/ntoll/.cache/pip/wheels/63/9d/8e/37c3f6506ed3f152733a699e92d8e0c9f5e5f01dea262f80ad
Successfully built networkx sympy psutil mpmath
Failed to build qiskit
Installing collected packages: ntlm-auth, pycparser, cffi, asn1crypto, cryptography, requests-ntlm, scipy, decorator, networkx, mpmath, sympy, marshmallow, pillow, marshmallow-polyfield, ply, psutil, jsonschema, qiskit-terra, qiskit-aer, qiskit-ignis, qiskit
Running setup.py install for qiskit ... done
Successfully installed asn1crypto-0.24.0 cffi-1.12.2 cryptography-2.6.1 decorator-4.4.0 jsonschema-2.6.0 marshmallow-2.19.2 marshmallow-polyfield-3.2 mpmath-1.1.0 networkx-2.2 ntlm-auth-1.2.0 pillow-6.0.0 ply-3.11 psutil-5.6.1 pycparser-2.19 qiskit-0.8.0 qiskit-aer-0.1.1 qiskit-ignis-0.1.0 qiskit-terra-0.7.1 requests-ntlm-1.1.0 scipy-1.2.1 sympy-1.3
Do you want to install the required package 'apng' (y/n)
y
Collecting apng
Downloading https://files.pythonhosted.org/packages/7b/75/261c53288e91d978f4bd9066a73ddcb4cfb047b8d3a21e6255889eb7deae/apng-0.3.3-py2.py3-none-any.whl
Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '/tmp/pip-req-tracker-ivaw4j3q/9c27a8516751bf59782e128d290500a090d81947a5c13015300a800a'
Traceback (most recent call last):
File "quantograph.py", line 11, in <module>
from apng import APNG
ModuleNotFoundError: No module named 'apng'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "quantograph.py", line 17, in <module>
from apng import APNG
ModuleNotFoundError: No module named 'apng'
capturts
I can't get this to work. If I do 'pip3 install qisket' I just get:
"Failed building wheel for qiskit"
Interesting toy. You can get some cool effects if you play with the parameters. I wish I had more of an idea what's going on though. A toy where you play with parameters you don't understand is not too fun unfortunately, but maybe there is a way to make this into an actual game. I'm not sure. In any case, this is neat.