vs-tabletop


Namevs-tabletop JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/imr-framework/vs-tabletop
SummaryVirtual Scanner Tabletop Games
upload_time2023-01-25 19:14:47
maintainer
docs_urlNone
authorimr-framework
requires_python>=3
licenseLicense :: OSI Approved :: GNU Affero General Public License v3
keywords
VCS
bugtrack_url
requirements absl-py astor astunparse bidict cachelib cachetools certifi charset-normalizer click colorama cycler dominate ellipsinator Flask Flask-Bootstrap Flask-Login Flask-Session Flask-SocketIO Flask-SQLAlchemy Flask-WTF flatbuffers fonttools gast google-auth google-auth-oauthlib google-pasta greenlet grpcio gunicorn h11 h5py idna imageio importlib-metadata itsdangerous Jinja2 keras Keras-Applications Keras-Preprocessing kiwisolver libclang Markdown MarkupSafe matplotlib mock networkx nibabel numpy numpy-stl oauthlib opencv-python opt-einsum packaging pandas pbr phantominator Pillow plotly protobuf psycopg2 pyasn1 pyasn1-modules pydicom pymesh pyparsing pypulseq python-dateutil python-engineio python-socketio python-utils pytz PyWavelets PyYAML requests requests-oauthlib rsa scikit-image scipy selenium simple-websocket six SQLAlchemy ssfp stl-to-voxel tenacity tensorboard tensorboard-data-server tensorboard-plugin-wit termcolor tifffile tqdm typing_extensions urllib3 virtual-scanner visitor Werkzeug wrapt wsproto WTForms zipp
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h1 align="center">Virtual Scanner Tabletop Web Games</h3>
<p float="left">
<img title="PyPulseq Badge" src="https://img.shields.io/badge/made%20using-pypulseq-brightgreen" height="15"><img title="Virtual Scanner Badge" src="https://img.shields.io/badge/made%20using-virtual--scanner-blue" height="15">
</p>
<br>

Virtual Scanner Tabletop is an extension to [Virtual Scanner](https://github.com/imr-framework/virtual-scanner/) that comprises of educational games about MRI that can be run by simulation or connected to a real educational MRI scanner. Target audience include high school, college, and post-grad students as well as members of the MR and scientific community at large.   

## Quickstart
### Method 1: `pip install`
1. On the command line, make a new virtual environment. 
2. `pip install vs-tabletop`
3. cd into the main folder called "vstabletop" (`venv\Lib\site-packages\vstabletop`) and run `app.py`. Click into the link in the program output (examplee: http://127.0.0.1:5000/). Log in as admin using password `123456`. 
#### Troubleshooting 
(version 1.0.0b5) - You might encounter problems with installing Kiwisolver which requires Visual C++. If you have trouble getting the Visual C++, you can ignore the kiwisolver and perform the following steps:
1. Install vs-tabletop without dependencies: `pip install vs-tabletop==1.0.0b4 --no-deps`
2. After it's installed, find `requirements.txt` in the `vstabletop` folder and remove the `kiwisolver==1.0.1` line
3. Install the rest of the requirements: `pip install -r requirements.txt`
4. Run `app.py` the same way as described above. The games should be able to run normally.

### Method 2: Cloning 
1. Clone the repository.
2. Make a virtual environment, activate it, and install everything specified in `requirements.txt`
3. `cd` into the app directory and run `questions.py` to set up the database.
4. Run the app in one of two ways:
   (a) Run app.py using Pycharm or other IDE, or on the command line with `python app.py`
   (b) On the command line, set the FLASK_APP variable (`set FLASK_APP=app` on Windows, or `export FLASK_APP=app` on non-Windows). Then run the app with: `flask run`
5. Click into the link in the program output (example: http://127.0.0.1:5000/) or copy & paste it into the browser. Log in as admin using password `123456`.

Please provide feedback here after you've tried all the beginner games:smile:: https://forms.gle/HMby4NHcmrTLi5Ai7

## Tabletop Games
The eight tabletop games are grouped into 4 pairs, each containing a "beginner" game and an "advanced" game. 
Games 1, 3, 5, 7 are beginner games and the games 2, 4, 6, 8 are advanced games. 

| # | Game          | Conceptsr |
| --- | ------------- | ------------- |
| 1 | What's in an image?      | FOV, resolution, windowing  |
| 2 | K-space magiK            | projection imaging, k-space  |
| 3 | Brains, please!          | contrast, T1/T2/PD, TR/TE/FA | 
| 4 | Fresh blood              | flow imaging |
| 5 | Proton's got moves       | M9, precession, RF pulses, signal detection | 
| 6 | Relaxation station       | T1 and T2 relaxation, FID | 
| 7 | Puzzled by projection I  | 1D and 2D projection (forward) |
| 8 | Puzzled by projection II | 1D and 2D projection (inverse)|

## Screenshots 
Screenshots are in-development previews of the games. They will be updated at the first release. 

### Login page
![login](https://user-images.githubusercontent.com/31249056/186200814-f0abacb0-a4ad-490d-9b64-76e72f4bb6a9.png)

### Game navigation
![index](https://user-images.githubusercontent.com/31249056/186200755-38525e6b-4196-49d0-a23d-320a164ff2b4.png)

### Module 1 (beginner): What's in an image?
![game1](https://user-images.githubusercontent.com/31249056/186200870-c4d1a934-bf80-4f34-95e4-698a1fe6dee5.png)

### Module 2 (beginner): Brains, please!
![game3](https://user-images.githubusercontent.com/31249056/186200887-3504892c-3367-4fe4-a222-fc35fb869f8e.png)

### Module 3 (beginner): Proton's got moves
![game5](https://user-images.githubusercontent.com/31249056/186201062-cae3af09-749e-4e0a-a254-b803f7e22772.png)

### Module 4 (beginner): Puzzled by Projection I 
![game7](https://user-images.githubusercontent.com/31249056/186201082-00fc2dad-a9b1-4911-8862-99fbd73cccdc.png)

# References
Brain images from the Coursera Neurohacking in R (https://www.kaggle.com/datasets/ilknuricke/neurohackinginrimages) were used in Game 2.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/imr-framework/vs-tabletop",
    "name": "vs-tabletop",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3",
    "maintainer_email": "",
    "keywords": "",
    "author": "imr-framework",
    "author_email": "imr.framework2018@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/f7/37/669c2ad29ca1069cfcb1bb52c3d8beb9b98ccf282e21c28d59abb2fd7460/vs-tabletop-1.0.0.tar.gz",
    "platform": null,
    "description": "<h1 align=\"center\">Virtual Scanner Tabletop Web Games</h3>\r\n<p float=\"left\">\r\n<img title=\"PyPulseq Badge\" src=\"https://img.shields.io/badge/made%20using-pypulseq-brightgreen\" height=\"15\"><img title=\"Virtual Scanner Badge\" src=\"https://img.shields.io/badge/made%20using-virtual--scanner-blue\" height=\"15\">\r\n</p>\r\n<br>\r\n\r\nVirtual Scanner Tabletop is an extension to [Virtual Scanner](https://github.com/imr-framework/virtual-scanner/) that comprises of educational games about MRI that can be run by simulation or connected to a real educational MRI scanner. Target audience include high school, college, and post-grad students as well as members of the MR and scientific community at large.   \r\n\r\n## Quickstart\r\n### Method 1: `pip install`\r\n1. On the command line, make a new virtual environment. \r\n2. `pip install vs-tabletop`\r\n3. cd into the main folder called \"vstabletop\" (`venv\\Lib\\site-packages\\vstabletop`) and run `app.py`. Click into the link in the program output (examplee: http://127.0.0.1:5000/). Log in as admin using password `123456`. \r\n#### Troubleshooting \r\n(version 1.0.0b5) - You might encounter problems with installing Kiwisolver which requires Visual C++. If you have trouble getting the Visual C++, you can ignore the kiwisolver and perform the following steps:\r\n1. Install vs-tabletop without dependencies: `pip install vs-tabletop==1.0.0b4 --no-deps`\r\n2. After it's installed, find `requirements.txt` in the `vstabletop` folder and remove the `kiwisolver==1.0.1` line\r\n3. Install the rest of the requirements: `pip install -r requirements.txt`\r\n4. Run `app.py` the same way as described above. The games should be able to run normally.\r\n\r\n### Method 2: Cloning \r\n1. Clone the repository.\r\n2. Make a virtual environment, activate it, and install everything specified in `requirements.txt`\r\n3. `cd` into the app directory and run `questions.py` to set up the database.\r\n4. Run the app in one of two ways:\r\n   (a) Run app.py using Pycharm or other IDE, or on the command line with `python app.py`\r\n   (b) On the command line, set the FLASK_APP variable (`set FLASK_APP=app` on Windows, or `export FLASK_APP=app` on non-Windows). Then run the app with: `flask run`\r\n5. Click into the link in the program output (example: http://127.0.0.1:5000/) or copy & paste it into the browser. Log in as admin using password `123456`.\r\n\r\nPlease provide feedback here after you've tried all the beginner games:smile:: https://forms.gle/HMby4NHcmrTLi5Ai7\r\n\r\n## Tabletop Games\r\nThe eight tabletop games are grouped into 4 pairs, each containing a \"beginner\" game and an \"advanced\" game. \r\nGames 1, 3, 5, 7 are beginner games and the games 2, 4, 6, 8 are advanced games. \r\n\r\n| # | Game          | Conceptsr |\r\n| --- | ------------- | ------------- |\r\n| 1 | What's in an image?      | FOV, resolution, windowing  |\r\n| 2 | K-space magiK            | projection imaging, k-space  |\r\n| 3 | Brains, please!          | contrast, T1/T2/PD, TR/TE/FA | \r\n| 4 | Fresh blood              | flow imaging |\r\n| 5 | Proton's got moves       | M9, precession, RF pulses, signal detection | \r\n| 6 | Relaxation station       | T1 and T2 relaxation, FID | \r\n| 7 | Puzzled by projection I  | 1D and 2D projection (forward) |\r\n| 8 | Puzzled by projection II | 1D and 2D projection (inverse)|\r\n\r\n## Screenshots \r\nScreenshots are in-development previews of the games. They will be updated at the first release. \r\n\r\n### Login page\r\n![login](https://user-images.githubusercontent.com/31249056/186200814-f0abacb0-a4ad-490d-9b64-76e72f4bb6a9.png)\r\n\r\n### Game navigation\r\n![index](https://user-images.githubusercontent.com/31249056/186200755-38525e6b-4196-49d0-a23d-320a164ff2b4.png)\r\n\r\n### Module 1 (beginner): What's in an image?\r\n![game1](https://user-images.githubusercontent.com/31249056/186200870-c4d1a934-bf80-4f34-95e4-698a1fe6dee5.png)\r\n\r\n### Module 2 (beginner): Brains, please!\r\n![game3](https://user-images.githubusercontent.com/31249056/186200887-3504892c-3367-4fe4-a222-fc35fb869f8e.png)\r\n\r\n### Module 3 (beginner): Proton's got moves\r\n![game5](https://user-images.githubusercontent.com/31249056/186201062-cae3af09-749e-4e0a-a254-b803f7e22772.png)\r\n\r\n### Module 4 (beginner): Puzzled by Projection I \r\n![game7](https://user-images.githubusercontent.com/31249056/186201082-00fc2dad-a9b1-4911-8862-99fbd73cccdc.png)\r\n\r\n# References\r\nBrain images from the Coursera Neurohacking in R (https://www.kaggle.com/datasets/ilknuricke/neurohackinginrimages) were used in Game 2.\r\n",
    "bugtrack_url": null,
    "license": "License :: OSI Approved :: GNU Affero General Public License v3",
    "summary": "Virtual Scanner Tabletop Games",
    "version": "1.0.0",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bc42956f4cc8f529db2f4c8de5ac51f69d7179d79b2faa4bb5111f47db4e5957",
                "md5": "dd60a7d2022744fd6d24528a6f6a85e3",
                "sha256": "8453cc7c1dd1dfe93fa22f3fe43da79880da29e38bec3e55b761dadc62abc255"
            },
            "downloads": -1,
            "filename": "vs_tabletop-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dd60a7d2022744fd6d24528a6f6a85e3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3",
            "size": 5173878,
            "upload_time": "2023-01-25T19:14:44",
            "upload_time_iso_8601": "2023-01-25T19:14:44.141820Z",
            "url": "https://files.pythonhosted.org/packages/bc/42/956f4cc8f529db2f4c8de5ac51f69d7179d79b2faa4bb5111f47db4e5957/vs_tabletop-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f737669c2ad29ca1069cfcb1bb52c3d8beb9b98ccf282e21c28d59abb2fd7460",
                "md5": "b33119d9da16a708b3f03bad316118d9",
                "sha256": "9a02120c3e02986dec37e96ce138dba6c65858316fe02d2bdcfb0d7eaed6ee5f"
            },
            "downloads": -1,
            "filename": "vs-tabletop-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b33119d9da16a708b3f03bad316118d9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3",
            "size": 4981379,
            "upload_time": "2023-01-25T19:14:47",
            "upload_time_iso_8601": "2023-01-25T19:14:47.914353Z",
            "url": "https://files.pythonhosted.org/packages/f7/37/669c2ad29ca1069cfcb1bb52c3d8beb9b98ccf282e21c28d59abb2fd7460/vs-tabletop-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-25 19:14:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "imr-framework",
    "github_project": "vs-tabletop",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "absl-py",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "astor",
            "specs": [
                [
                    "==",
                    "0.7.1"
                ]
            ]
        },
        {
            "name": "astunparse",
            "specs": [
                [
                    "==",
                    "1.6.3"
                ]
            ]
        },
        {
            "name": "bidict",
            "specs": [
                [
                    "==",
                    "0.22.0"
                ]
            ]
        },
        {
            "name": "cachelib",
            "specs": [
                [
                    "==",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "cachetools",
            "specs": [
                [
                    "==",
                    "5.2.0"
                ]
            ]
        },
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2022.6.15"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "2.1.0"
                ]
            ]
        },
        {
            "name": "click",
            "specs": [
                [
                    "==",
                    "8.1.3"
                ]
            ]
        },
        {
            "name": "colorama",
            "specs": [
                [
                    "==",
                    "0.4.4"
                ]
            ]
        },
        {
            "name": "cycler",
            "specs": [
                [
                    "==",
                    "0.10.0"
                ]
            ]
        },
        {
            "name": "dominate",
            "specs": [
                [
                    "==",
                    "2.6.0"
                ]
            ]
        },
        {
            "name": "ellipsinator",
            "specs": [
                [
                    "==",
                    "0.2.1"
                ]
            ]
        },
        {
            "name": "Flask",
            "specs": [
                [
                    "==",
                    "2.1.2"
                ]
            ]
        },
        {
            "name": "Flask-Bootstrap",
            "specs": [
                [
                    "==",
                    "3.3.7.1"
                ]
            ]
        },
        {
            "name": "Flask-Login",
            "specs": [
                [
                    "==",
                    "0.6.1"
                ]
            ]
        },
        {
            "name": "Flask-Session",
            "specs": [
                [
                    "==",
                    "0.4.0"
                ]
            ]
        },
        {
            "name": "Flask-SocketIO",
            "specs": [
                [
                    "==",
                    "5.2.0"
                ]
            ]
        },
        {
            "name": "Flask-SQLAlchemy",
            "specs": [
                [
                    "==",
                    "2.5.1"
                ]
            ]
        },
        {
            "name": "Flask-WTF",
            "specs": [
                [
                    "==",
                    "1.0.1"
                ]
            ]
        },
        {
            "name": "flatbuffers",
            "specs": [
                [
                    "==",
                    "1.12"
                ]
            ]
        },
        {
            "name": "fonttools",
            "specs": [
                [
                    "==",
                    "4.33.3"
                ]
            ]
        },
        {
            "name": "gast",
            "specs": [
                [
                    "==",
                    "0.2.2"
                ]
            ]
        },
        {
            "name": "google-auth",
            "specs": [
                [
                    "==",
                    "2.9.0"
                ]
            ]
        },
        {
            "name": "google-auth-oauthlib",
            "specs": [
                [
                    "==",
                    "0.4.6"
                ]
            ]
        },
        {
            "name": "google-pasta",
            "specs": [
                [
                    "==",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "greenlet",
            "specs": [
                [
                    "==",
                    "1.1.2"
                ]
            ]
        },
        {
            "name": "grpcio",
            "specs": [
                [
                    "==",
                    "1.47.0"
                ]
            ]
        },
        {
            "name": "gunicorn",
            "specs": [
                [
                    "==",
                    "20.1.0"
                ]
            ]
        },
        {
            "name": "h11",
            "specs": [
                [
                    "==",
                    "0.13.0"
                ]
            ]
        },
        {
            "name": "h5py",
            "specs": [
                [
                    "==",
                    "3.7.0"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.3"
                ]
            ]
        },
        {
            "name": "imageio",
            "specs": [
                [
                    "==",
                    "2.19.3"
                ]
            ]
        },
        {
            "name": "importlib-metadata",
            "specs": [
                [
                    "==",
                    "4.11.4"
                ]
            ]
        },
        {
            "name": "itsdangerous",
            "specs": [
                [
                    "==",
                    "2.1.2"
                ]
            ]
        },
        {
            "name": "Jinja2",
            "specs": [
                [
                    "==",
                    "3.1.2"
                ]
            ]
        },
        {
            "name": "keras",
            "specs": [
                [
                    "==",
                    "2.9.0"
                ]
            ]
        },
        {
            "name": "Keras-Applications",
            "specs": [
                [
                    "==",
                    "1.0.8"
                ]
            ]
        },
        {
            "name": "Keras-Preprocessing",
            "specs": [
                [
                    "==",
                    "1.1.2"
                ]
            ]
        },
        {
            "name": "kiwisolver",
            "specs": [
                [
                    "==",
                    "1.0.1"
                ]
            ]
        },
        {
            "name": "libclang",
            "specs": [
                [
                    "==",
                    "14.0.1"
                ]
            ]
        },
        {
            "name": "Markdown",
            "specs": [
                [
                    "==",
                    "3.1"
                ]
            ]
        },
        {
            "name": "MarkupSafe",
            "specs": [
                [
                    "==",
                    "2.1.1"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    "==",
                    "3.5.2"
                ]
            ]
        },
        {
            "name": "mock",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "networkx",
            "specs": [
                [
                    "==",
                    "2.8.4"
                ]
            ]
        },
        {
            "name": "nibabel",
            "specs": [
                [
                    "==",
                    "2.4.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.22.4"
                ]
            ]
        },
        {
            "name": "numpy-stl",
            "specs": [
                [
                    "==",
                    "2.17.1"
                ]
            ]
        },
        {
            "name": "oauthlib",
            "specs": [
                [
                    "==",
                    "3.2.0"
                ]
            ]
        },
        {
            "name": "opencv-python",
            "specs": [
                [
                    "==",
                    "4.6.0.66"
                ]
            ]
        },
        {
            "name": "opt-einsum",
            "specs": [
                [
                    "==",
                    "3.3.0"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": [
                [
                    "==",
                    "21.3"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    "==",
                    "1.4.2"
                ]
            ]
        },
        {
            "name": "pbr",
            "specs": [
                [
                    "==",
                    "5.1.3"
                ]
            ]
        },
        {
            "name": "phantominator",
            "specs": [
                [
                    "==",
                    "0.6.4"
                ]
            ]
        },
        {
            "name": "Pillow",
            "specs": [
                [
                    "==",
                    "9.2.0"
                ]
            ]
        },
        {
            "name": "plotly",
            "specs": [
                [
                    "==",
                    "5.9.0"
                ]
            ]
        },
        {
            "name": "protobuf",
            "specs": [
                [
                    "==",
                    "3.19.4"
                ]
            ]
        },
        {
            "name": "psycopg2",
            "specs": [
                [
                    "==",
                    "2.9.3"
                ]
            ]
        },
        {
            "name": "pyasn1",
            "specs": [
                [
                    "==",
                    "0.4.8"
                ]
            ]
        },
        {
            "name": "pyasn1-modules",
            "specs": [
                [
                    "==",
                    "0.2.8"
                ]
            ]
        },
        {
            "name": "pydicom",
            "specs": [
                [
                    "==",
                    "1.2.2"
                ]
            ]
        },
        {
            "name": "pymesh",
            "specs": [
                [
                    "==",
                    "1.0.2"
                ]
            ]
        },
        {
            "name": "pyparsing",
            "specs": [
                [
                    "==",
                    "2.3.1"
                ]
            ]
        },
        {
            "name": "pypulseq",
            "specs": [
                [
                    "==",
                    "1.3.1.post1"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.8.2"
                ]
            ]
        },
        {
            "name": "python-engineio",
            "specs": [
                [
                    "==",
                    "4.3.3"
                ]
            ]
        },
        {
            "name": "python-socketio",
            "specs": [
                [
                    "==",
                    "5.7.0"
                ]
            ]
        },
        {
            "name": "python-utils",
            "specs": [
                [
                    "==",
                    "3.3.3"
                ]
            ]
        },
        {
            "name": "pytz",
            "specs": [
                [
                    "==",
                    "2022.1"
                ]
            ]
        },
        {
            "name": "PyWavelets",
            "specs": [
                [
                    "==",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "PyYAML",
            "specs": [
                [
                    "==",
                    "5.1"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.28.1"
                ]
            ]
        },
        {
            "name": "requests-oauthlib",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "rsa",
            "specs": [
                [
                    "==",
                    "4.8"
                ]
            ]
        },
        {
            "name": "scikit-image",
            "specs": [
                [
                    "==",
                    "0.19.3"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    "==",
                    "1.8.1"
                ]
            ]
        },
        {
            "name": "selenium",
            "specs": [
                [
                    "==",
                    "3.141.0"
                ]
            ]
        },
        {
            "name": "simple-websocket",
            "specs": [
                [
                    "==",
                    "0.5.2"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    "==",
                    "1.16.0"
                ]
            ]
        },
        {
            "name": "SQLAlchemy",
            "specs": [
                [
                    "==",
                    "1.4.37"
                ]
            ]
        },
        {
            "name": "ssfp",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "stl-to-voxel",
            "specs": [
                [
                    "==",
                    "0.9.2"
                ]
            ]
        },
        {
            "name": "tenacity",
            "specs": [
                [
                    "==",
                    "8.0.1"
                ]
            ]
        },
        {
            "name": "tensorboard",
            "specs": [
                [
                    "==",
                    "2.9.1"
                ]
            ]
        },
        {
            "name": "tensorboard-data-server",
            "specs": [
                [
                    "==",
                    "0.6.1"
                ]
            ]
        },
        {
            "name": "tensorboard-plugin-wit",
            "specs": [
                [
                    "==",
                    "1.8.1"
                ]
            ]
        },
        {
            "name": "termcolor",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "tifffile",
            "specs": [
                [
                    "==",
                    "2022.5.4"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    "==",
                    "4.64.0"
                ]
            ]
        },
        {
            "name": "typing_extensions",
            "specs": [
                [
                    "==",
                    "4.3.0"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "1.26.9"
                ]
            ]
        },
        {
            "name": "virtual-scanner",
            "specs": [
                [
                    "==",
                    "2.0.0.post5"
                ]
            ]
        },
        {
            "name": "visitor",
            "specs": [
                [
                    "==",
                    "0.1.3"
                ]
            ]
        },
        {
            "name": "Werkzeug",
            "specs": [
                [
                    "==",
                    "2.1.2"
                ]
            ]
        },
        {
            "name": "wrapt",
            "specs": [
                [
                    "==",
                    "1.14.1"
                ]
            ]
        },
        {
            "name": "wsproto",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "WTForms",
            "specs": [
                [
                    "==",
                    "3.0.1"
                ]
            ]
        },
        {
            "name": "zipp",
            "specs": [
                [
                    "==",
                    "3.8.0"
                ]
            ]
        }
    ],
    "lcname": "vs-tabletop"
}
        
Elapsed time: 0.03174s