[](https://badge.fury.io/py/xs3d)
# xs3d: Compute cross sectional area for 3D image objects
```python
import xs3d
# let binary image be a boolean numpy array
# in fortran order that is 500 x 500 x 500 voxels
# containing a shape, which may have multiple
# connected components, representing e.g. a neuron
binary_image = np.load(...)
# a point inside the shape (must be integer)
vertex = np.array([200,121,78])
# normal vector defining sectioning plane
# it doesn't have to be a unit vector
# vector can be of arbitrary orientation
# This vector is given in voxel space,
# not physical space (i.e. divide by anisotropy)!
normal = np.array([0.01, 0.033, 0.9])
# voxel dimensions in e.g. nanometers
resolution = np.array([32,32,40])
# cross sectional area returned as a float
area = xs3d.cross_sectional_area(binary_image, vertex, normal, resolution)
# optionally return a bitfield that tells you if the section
# plane touched the image border, indicating a possible
# underestimate of the area if the image is a cutout of
# a larger scene.
# if the bitfield is > 0, then some edge contact is made
# the bitfield order is -x+x-y+y-z+z00
# where - means left edge (0), and + means right edge (size-1)
# and 0 means unused
area, contact_warning = xs3d.cross_sectional_area(
binary_image, vertex, normal, resolution,
return_contact=True
)
# Returns the cross section as a float32 3d image
# where each voxel represents its contribution
# to the cross sectional area
image = xs3d.cross_section(
binary_image, vertex,
normal, resolution,
)
# Get a slice of a 3d image in any orientation.
# Note: result may be reflected or transposed
# compared with what you might expect.
image2d = xs3d.slice(labels, vertex, normal, anisotropy)
# You can also crop your ROI using physical units
image2d = xs3d.slice(labels, vertex, normal, anisotropy, crop=100)
```
# Installation
```
pip install xs3d
```
# Cross Section Calculation
When using skeletons (one dimensional stick figure representations) to create electrophysiological compartment simulations of neurons, some additional information is required for accuracy. The caliber of the neurite changes over the length of the cell.
Previously, the radius from the current skeleton vertex to the nearest background voxel was used, but this was often an underestimate as it is sensitive to noise and divots in a shape.
A superior measure would be the cross sectional area using a section plane that is orthogonal to the direction of travel along the neurite. This library provides that missing capability.
# How Does it Work?
The algorithm roughly works as follows.
1. Label voxels that are intercepted by the sectioning plane.
2. Label the connected components of those voxels.
3. Filter out all components except the region of interest.
4. Compute the polygon formed by the intersection of the plane with the 8 corners and 12 edges of each voxel.
5. Add up the area contributed by each polygon so formed in the component of interest.
Raw data
{
"_id": null,
"home_page": "https://github.com/seung-lab/cross-section/",
"name": "xs3d",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "William Silversmith",
"author_email": "ws9@princeton.edu",
"download_url": "https://files.pythonhosted.org/packages/c0/f7/d7820be0f82a72336f2b4823cb6b9d2ad71642670a05f2b7d52178973258/xs3d-1.12.0.tar.gz",
"platform": null,
"description": "[](https://badge.fury.io/py/xs3d)\n\n# xs3d: Compute cross sectional area for 3D image objects\n\n```python\nimport xs3d\n\n# let binary image be a boolean numpy array \n# in fortran order that is 500 x 500 x 500 voxels\n# containing a shape, which may have multiple \n# connected components, representing e.g. a neuron\nbinary_image = np.load(...)\n\n# a point inside the shape (must be integer)\nvertex = np.array([200,121,78])\n# normal vector defining sectioning plane\n# it doesn't have to be a unit vector\n# vector can be of arbitrary orientation\n# This vector is given in voxel space, \n# not physical space (i.e. divide by anisotropy)!\nnormal = np.array([0.01, 0.033, 0.9])\n\n# voxel dimensions in e.g. nanometers\nresolution = np.array([32,32,40]) \n\n# cross sectional area returned as a float\narea = xs3d.cross_sectional_area(binary_image, vertex, normal, resolution)\n\n# optionally return a bitfield that tells you if the section\n# plane touched the image border, indicating a possible\n# underestimate of the area if the image is a cutout of\n# a larger scene.\n# if the bitfield is > 0, then some edge contact is made\n# the bitfield order is -x+x-y+y-z+z00\n# where - means left edge (0), and + means right edge (size-1)\n# and 0 means unused\narea, contact_warning = xs3d.cross_sectional_area(\n\tbinary_image, vertex, normal, resolution, \n\treturn_contact=True\n)\n\n# Returns the cross section as a float32 3d image\n# where each voxel represents its contribution\n# to the cross sectional area\nimage = xs3d.cross_section(\n\tbinary_image, vertex, \n\tnormal, resolution, \n)\n\n# Get a slice of a 3d image in any orientation.\n# Note: result may be reflected or transposed\n# compared with what you might expect.\nimage2d = xs3d.slice(labels, vertex, normal, anisotropy)\n\n# You can also crop your ROI using physical units\nimage2d = xs3d.slice(labels, vertex, normal, anisotropy, crop=100) \n```\n\n# Installation\n\n```\npip install xs3d\n```\n\n# Cross Section Calculation\n\nWhen using skeletons (one dimensional stick figure representations) to create electrophysiological compartment simulations of neurons, some additional information is required for accuracy. The caliber of the neurite changes over the length of the cell.\n\nPreviously, the radius from the current skeleton vertex to the nearest background voxel was used, but this was often an underestimate as it is sensitive to noise and divots in a shape.\n\nA superior measure would be the cross sectional area using a section plane that is orthogonal to the direction of travel along the neurite. This library provides that missing capability.\n\n# How Does it Work?\n\nThe algorithm roughly works as follows.\n\n1. Label voxels that are intercepted by the sectioning plane.\n2. Label the connected components of those voxels.\n3. Filter out all components except the region of interest.\n4. Compute the polygon formed by the intersection of the plane with the 8 corners and 12 edges of each voxel.\n5. Add up the area contributed by each polygon so formed in the component of interest.\n\n",
"bugtrack_url": null,
"license": "\"LGPL-3.0-or-later\"",
"summary": "Compute cross sectional area of 3d shapes.",
"version": "1.12.0",
"project_urls": {
"Homepage": "https://github.com/seung-lab/cross-section/"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c3428f79724bc5c7ba8c449677373d6b1ea8e14181bc65089c1ffffb58ae4ab0",
"md5": "c441d3071649f9b25a67dee398d0cde2",
"sha256": "9687d16b04b40ff21c8d9d9a62a7855ad2ac8c10af446c681264677a32189bee"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "c441d3071649f9b25a67dee398d0cde2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 132694,
"upload_time": "2025-07-26T05:45:59",
"upload_time_iso_8601": "2025-07-26T05:45:59.576675Z",
"url": "https://files.pythonhosted.org/packages/c3/42/8f79724bc5c7ba8c449677373d6b1ea8e14181bc65089c1ffffb58ae4ab0/xs3d-1.12.0-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5940d38645d6c60c1baf7b125b09a445c1cdf8295d1fc123c477cf70d9026ed9",
"md5": "c01802c4f5f23172b4c460ba719709fd",
"sha256": "3e2d6577b698f7225765678ec794cb4c4fa5dd7146f5221698222042621da7cb"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "c01802c4f5f23172b4c460ba719709fd",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 120000,
"upload_time": "2025-07-26T05:46:01",
"upload_time_iso_8601": "2025-07-26T05:46:01.021997Z",
"url": "https://files.pythonhosted.org/packages/59/40/d38645d6c60c1baf7b125b09a445c1cdf8295d1fc123c477cf70d9026ed9/xs3d-1.12.0-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0eef2feb78b96288df15f9883a41751a91106f0414510bb64934869dc0602ea9",
"md5": "fa9bc6d33655da37e255beba9aed69c7",
"sha256": "3fb1175f2648ebd59b8cfbb8beb3e29565845a47f6b4b12e0dc10ba4283bb153"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "fa9bc6d33655da37e255beba9aed69c7",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 170113,
"upload_time": "2025-07-26T05:46:02",
"upload_time_iso_8601": "2025-07-26T05:46:02.191266Z",
"url": "https://files.pythonhosted.org/packages/0e/ef/2feb78b96288df15f9883a41751a91106f0414510bb64934869dc0602ea9/xs3d-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1dfea5ba6c92164fa4d7c774f89c671fd209d2331bef593a4e45919612ea910b",
"md5": "bb22844688b308c2b1fe040e82fef6cb",
"sha256": "e52a2adf73ab90c6e1fdcbe97e44ac46ab8e897535134c3ba5d65fbb155ead10"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "bb22844688b308c2b1fe040e82fef6cb",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 111252,
"upload_time": "2025-07-26T05:46:04",
"upload_time_iso_8601": "2025-07-26T05:46:04.322376Z",
"url": "https://files.pythonhosted.org/packages/1d/fe/a5ba6c92164fa4d7c774f89c671fd209d2331bef593a4e45919612ea910b/xs3d-1.12.0-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a171bf0efd75cc1c2a24934b6bb0642d39318740e32cd8e130ae2c727c12cc02",
"md5": "bdf0908e4bb355de931ff3e907ee5357",
"sha256": "be569c0b04519927637d22f916ce3f5fd39a2b3cc42c3eff3eb5b4e37cde8622"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "bdf0908e4bb355de931ff3e907ee5357",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 119265,
"upload_time": "2025-07-26T05:46:03",
"upload_time_iso_8601": "2025-07-26T05:46:03.128618Z",
"url": "https://files.pythonhosted.org/packages/a1/71/bf0efd75cc1c2a24934b6bb0642d39318740e32cd8e130ae2c727c12cc02/xs3d-1.12.0-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ef969f42fa3d3d55da9789ea7576ab2b73495c2cff35b0734d4506fc1a1edbe8",
"md5": "a43516e763dcdfb903bf8c8c4cca29e3",
"sha256": "0c9d5495ee7be271382ec458ad20876bad7281598dc2a24825e5f8260f8789e8"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "a43516e763dcdfb903bf8c8c4cca29e3",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 134279,
"upload_time": "2025-07-26T05:46:05",
"upload_time_iso_8601": "2025-07-26T05:46:05.070717Z",
"url": "https://files.pythonhosted.org/packages/ef/96/9f42fa3d3d55da9789ea7576ab2b73495c2cff35b0734d4506fc1a1edbe8/xs3d-1.12.0-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d95cbe3f806c959337d52dbe2d0ac498fda7656d81b1647b9bcb10b014958907",
"md5": "7a34b12eadc25db5be7703437e8ee23d",
"sha256": "86f592e2b33c92baf0f043dec54d21998750efd6367b1155475681317649d2c0"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "7a34b12eadc25db5be7703437e8ee23d",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 121404,
"upload_time": "2025-07-26T05:46:06",
"upload_time_iso_8601": "2025-07-26T05:46:06.163668Z",
"url": "https://files.pythonhosted.org/packages/d9/5c/be3f806c959337d52dbe2d0ac498fda7656d81b1647b9bcb10b014958907/xs3d-1.12.0-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "27006289b2cf72643f3021597e6347a34965b5ce4072d21591cfce39354a1a58",
"md5": "4c6df8f702c446e25177a49695c9dda3",
"sha256": "ecd95a125560cb219f2ab978d564f30994fe9f370ed103deb1d2d15e806f8776"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "4c6df8f702c446e25177a49695c9dda3",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 171421,
"upload_time": "2025-07-26T05:46:06",
"upload_time_iso_8601": "2025-07-26T05:46:06.909176Z",
"url": "https://files.pythonhosted.org/packages/27/00/6289b2cf72643f3021597e6347a34965b5ce4072d21591cfce39354a1a58/xs3d-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fa48d1f8fd09ce9811de596bbf81914571532c541ba20f77129cb372afadd253",
"md5": "f3855a45cd51798328b34af5595cd433",
"sha256": "2d4d5cbaa771f0531efa9759acb5288a49fd326bcfd40a8602c0f1122d5f9167"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "f3855a45cd51798328b34af5595cd433",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 112584,
"upload_time": "2025-07-26T05:46:09",
"upload_time_iso_8601": "2025-07-26T05:46:09.427111Z",
"url": "https://files.pythonhosted.org/packages/fa/48/d1f8fd09ce9811de596bbf81914571532c541ba20f77129cb372afadd253/xs3d-1.12.0-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e305b0bb276b43215bf84fe91537dd6fc58871b41505a3a27d2be9bb8c73bcc4",
"md5": "aa0270408a20589be8bc2728f7fe6ff0",
"sha256": "fc39cfb131ea6ecd15aa2d036f7ccfc7903e2c417432414a2c8fa7e54f8598e2"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "aa0270408a20589be8bc2728f7fe6ff0",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 120047,
"upload_time": "2025-07-26T05:46:08",
"upload_time_iso_8601": "2025-07-26T05:46:08.112393Z",
"url": "https://files.pythonhosted.org/packages/e3/05/b0bb276b43215bf84fe91537dd6fc58871b41505a3a27d2be9bb8c73bcc4/xs3d-1.12.0-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0a4655b2cedf1016f83f539c22188b5e76e1aa5571c98def2965b45aa232b3bb",
"md5": "fcf4a9bebbb694ddb9490fd28abd0d00",
"sha256": "9a1201dc98df58ef09b1324034ab0754bb83bae544e43855dc1a35301cae5d91"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp312-cp312-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "fcf4a9bebbb694ddb9490fd28abd0d00",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 134405,
"upload_time": "2025-07-26T05:46:10",
"upload_time_iso_8601": "2025-07-26T05:46:10.684951Z",
"url": "https://files.pythonhosted.org/packages/0a/46/55b2cedf1016f83f539c22188b5e76e1aa5571c98def2965b45aa232b3bb/xs3d-1.12.0-cp312-cp312-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f797f23bbae18ba6cb948225299d0c04bfef3be03492bc27cf31a4ea0cab6ff0",
"md5": "ab2d49b2a69079bd73f913260b2e8eaf",
"sha256": "f6a14899bde5e0e5e9ce15fdd4d22e1abe7effeac1c2285b4ffcaaaa17c72e55"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "ab2d49b2a69079bd73f913260b2e8eaf",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 122430,
"upload_time": "2025-07-26T05:46:11",
"upload_time_iso_8601": "2025-07-26T05:46:11.760229Z",
"url": "https://files.pythonhosted.org/packages/f7/97/f23bbae18ba6cb948225299d0c04bfef3be03492bc27cf31a4ea0cab6ff0/xs3d-1.12.0-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c9385a1f40653ef40858ac6e3c2996233930425ace91d7d5fc96ec06ecc951dc",
"md5": "99eacf050a9c684502c19429a102e29e",
"sha256": "838a51911b2bf9c4408fb6aa20b8ffeabe61a8d72cd95a1a2d97675e8b698747"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "99eacf050a9c684502c19429a102e29e",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 172722,
"upload_time": "2025-07-26T05:46:12",
"upload_time_iso_8601": "2025-07-26T05:46:12.626445Z",
"url": "https://files.pythonhosted.org/packages/c9/38/5a1f40653ef40858ac6e3c2996233930425ace91d7d5fc96ec06ecc951dc/xs3d-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "15eea7baeb342c184bf5ad83fb97ec2e7f40c05c43308ddea9da32bd9ee43b0d",
"md5": "0709b0ac260a4aaaf980803c245bb7b1",
"sha256": "499591e8c3721b38154ac94b8388dfe1d6731fa40c22a3cd1e28b88f352e981d"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "0709b0ac260a4aaaf980803c245bb7b1",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 112628,
"upload_time": "2025-07-26T05:46:15",
"upload_time_iso_8601": "2025-07-26T05:46:15.181802Z",
"url": "https://files.pythonhosted.org/packages/15/ee/a7baeb342c184bf5ad83fb97ec2e7f40c05c43308ddea9da32bd9ee43b0d/xs3d-1.12.0-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8a0fb9523d6984d0dd90f985625798baaceec7b94de73646cd82f04e2f2b11eb",
"md5": "9d0a4b5eb76a465289bd720c61d79845",
"sha256": "2b7780b04d19096a5eddc5abf47419d3f0fed724769dddbdb09e3a4cfa9b350b"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "9d0a4b5eb76a465289bd720c61d79845",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 120183,
"upload_time": "2025-07-26T05:46:13",
"upload_time_iso_8601": "2025-07-26T05:46:13.860689Z",
"url": "https://files.pythonhosted.org/packages/8a/0f/b9523d6984d0dd90f985625798baaceec7b94de73646cd82f04e2f2b11eb/xs3d-1.12.0-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7991469e6a0bad59a27b04723180d50b1e1061368b98c6d204455d0fcc1632f9",
"md5": "8804b525c3511e474613016773b0169d",
"sha256": "11116e638c32785215f9c4ca011218f2ac3ff55c3b8805fcef60cd757b65a7d8"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp313-cp313-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "8804b525c3511e474613016773b0169d",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 134425,
"upload_time": "2025-07-26T05:46:16",
"upload_time_iso_8601": "2025-07-26T05:46:16.000917Z",
"url": "https://files.pythonhosted.org/packages/79/91/469e6a0bad59a27b04723180d50b1e1061368b98c6d204455d0fcc1632f9/xs3d-1.12.0-cp313-cp313-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "47cf5f52999453d6be6d664a82a4518ae291c68a20c5e0d4a48f06589879349d",
"md5": "43b66651a07df2df472a49ef351914b4",
"sha256": "00c8d87e68747a0be53df03fcd0f413ddff447c22d171df3597c21cdf0cf50df"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "43b66651a07df2df472a49ef351914b4",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 122478,
"upload_time": "2025-07-26T05:46:17",
"upload_time_iso_8601": "2025-07-26T05:46:17.021430Z",
"url": "https://files.pythonhosted.org/packages/47/cf/5f52999453d6be6d664a82a4518ae291c68a20c5e0d4a48f06589879349d/xs3d-1.12.0-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "02934a572374ffd0280bb9d1e760621bcf71c008a46d0ee29d47f311921be26b",
"md5": "f97dc4459e8ea61a8f744ac69ae22071",
"sha256": "f99edf2ab24e8f56079cc4ca79f93fcd23d046fb174943bfe6137a2281e2fbd3"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "f97dc4459e8ea61a8f744ac69ae22071",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 172541,
"upload_time": "2025-07-26T05:46:17",
"upload_time_iso_8601": "2025-07-26T05:46:17.836541Z",
"url": "https://files.pythonhosted.org/packages/02/93/4a572374ffd0280bb9d1e760621bcf71c008a46d0ee29d47f311921be26b/xs3d-1.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "133ce343989f280fca6721b2604b3d461ec05bb3e3706b5ea52a3bfb09461be4",
"md5": "4ae9ae8046034655a078ca7acc841bdc",
"sha256": "c4bd6d2fa80883a63324f38ebc568b6a690cb784978ebcb7fca15b7efcd78bbe"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp313-cp313-win32.whl",
"has_sig": false,
"md5_digest": "4ae9ae8046034655a078ca7acc841bdc",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 112625,
"upload_time": "2025-07-26T05:46:19",
"upload_time_iso_8601": "2025-07-26T05:46:19.469301Z",
"url": "https://files.pythonhosted.org/packages/13/3c/e343989f280fca6721b2604b3d461ec05bb3e3706b5ea52a3bfb09461be4/xs3d-1.12.0-cp313-cp313-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "58e8175d17a43bdfe666b733fc626bbb8e944fbfef0bdfda84c36bdc5eeddaaf",
"md5": "fd8058ced5748ab3b0896b18e47bb1e5",
"sha256": "351a4e15a390407eab8fdcc65e0a5b894580275db5941f21c3f64568a465d019"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "fd8058ced5748ab3b0896b18e47bb1e5",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 120201,
"upload_time": "2025-07-26T05:46:18",
"upload_time_iso_8601": "2025-07-26T05:46:18.720029Z",
"url": "https://files.pythonhosted.org/packages/58/e8/175d17a43bdfe666b733fc626bbb8e944fbfef0bdfda84c36bdc5eeddaaf/xs3d-1.12.0-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e77e6d95da4f97c49888f760f7323745f0679af35644643385ce119b37e6c853",
"md5": "9232c9eac1c6d10c7eeb0511f4df19bc",
"sha256": "45462e60544c6d7588df7a60cea4c242fc4a4382e43d97010beefa54176d0445"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp36-cp36m-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "9232c9eac1c6d10c7eeb0511f4df19bc",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": null,
"size": 123684,
"upload_time": "2025-07-26T05:46:20",
"upload_time_iso_8601": "2025-07-26T05:46:20.297868Z",
"url": "https://files.pythonhosted.org/packages/e7/7e/6d95da4f97c49888f760f7323745f0679af35644643385ce119b37e6c853/xs3d-1.12.0-cp36-cp36m-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "27cbaa01f7999c9af8df974363287dbe33da4c6072c2554eb90ff004fe9c8cd4",
"md5": "6bab6c0a40100033a67a446bf8123fba",
"sha256": "6bf2080d6e1a4a4817dedabab8c63f47ed985376c48920c1960d017f579ddef7"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "6bab6c0a40100033a67a446bf8123fba",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": null,
"size": 166572,
"upload_time": "2025-07-26T05:46:21",
"upload_time_iso_8601": "2025-07-26T05:46:21.073848Z",
"url": "https://files.pythonhosted.org/packages/27/cb/aa01f7999c9af8df974363287dbe33da4c6072c2554eb90ff004fe9c8cd4/xs3d-1.12.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "84c4fb88ead3db86ef51a56f32e60a7cdd2b15b55f8e7a70294951dc8a6fd925",
"md5": "497e6b3d1e66f5101ad5787174b02fb9",
"sha256": "7eb9572373abfc8b662affb653c3abb9cb2dd2571ebd79dec7b3ba8eeb525f99"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp36-cp36m-win32.whl",
"has_sig": false,
"md5_digest": "497e6b3d1e66f5101ad5787174b02fb9",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": null,
"size": 107653,
"upload_time": "2025-07-26T05:46:22",
"upload_time_iso_8601": "2025-07-26T05:46:22.961030Z",
"url": "https://files.pythonhosted.org/packages/84/c4/fb88ead3db86ef51a56f32e60a7cdd2b15b55f8e7a70294951dc8a6fd925/xs3d-1.12.0-cp36-cp36m-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f1c04ded77281eff7584b8a059200ee70d3465425b4a8bcf54e5bf6845d64b3e",
"md5": "02ad5030b3f467498f6f5e2426510fa6",
"sha256": "157632c86a5676bd4cb48d20e482e0730613bf3c99cc06129c59766016ad4020"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp36-cp36m-win_amd64.whl",
"has_sig": false,
"md5_digest": "02ad5030b3f467498f6f5e2426510fa6",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": null,
"size": 115194,
"upload_time": "2025-07-26T05:46:21",
"upload_time_iso_8601": "2025-07-26T05:46:21.912769Z",
"url": "https://files.pythonhosted.org/packages/f1/c0/4ded77281eff7584b8a059200ee70d3465425b4a8bcf54e5bf6845d64b3e/xs3d-1.12.0-cp36-cp36m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "06a08b5833695cdadb63541e467ccbc446e16a429b14a18098e6c7125f11a982",
"md5": "e62ad4647b477f2ccf793b8960f2c5fd",
"sha256": "e63a4b342ec63225a9521f9a76ebd266d9c1486d08a2acec3c79e916df2481d3"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp37-cp37m-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "e62ad4647b477f2ccf793b8960f2c5fd",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 124157,
"upload_time": "2025-07-26T05:46:23",
"upload_time_iso_8601": "2025-07-26T05:46:23.784141Z",
"url": "https://files.pythonhosted.org/packages/06/a0/8b5833695cdadb63541e467ccbc446e16a429b14a18098e6c7125f11a982/xs3d-1.12.0-cp37-cp37m-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e28a3314eb568f73ffc98695775401dc8badfd7774577ebd152d866bd223bde6",
"md5": "266ca5bce6acbfef28a80de053d595e4",
"sha256": "46759e950f56b08ae431ec9236b5710219524911cab548e43722a39963ec4393"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "266ca5bce6acbfef28a80de053d595e4",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 166841,
"upload_time": "2025-07-26T05:46:25",
"upload_time_iso_8601": "2025-07-26T05:46:25.644118Z",
"url": "https://files.pythonhosted.org/packages/e2/8a/3314eb568f73ffc98695775401dc8badfd7774577ebd152d866bd223bde6/xs3d-1.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a1080c56d91f06f303ec4bbf421816c56109e61562627c974cbe131e451b2c52",
"md5": "0a40f3ab86bc78b4f076eac4e1c34598",
"sha256": "2b573f58823cc49923a163fb1ca2c7ba7137a1321286efa26b3bf7a159c9c2d1"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp37-cp37m-win32.whl",
"has_sig": false,
"md5_digest": "0a40f3ab86bc78b4f076eac4e1c34598",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 107950,
"upload_time": "2025-07-26T05:46:27",
"upload_time_iso_8601": "2025-07-26T05:46:27.262920Z",
"url": "https://files.pythonhosted.org/packages/a1/08/0c56d91f06f303ec4bbf421816c56109e61562627c974cbe131e451b2c52/xs3d-1.12.0-cp37-cp37m-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7267b6b49c0617681d4f616d52d6086c9620eb6ff9fee350f2127badb48b5f99",
"md5": "38f00a2cfaf41839a397fc494302fa11",
"sha256": "89d0f1c80bd9507c5abacafd8c64767864406a82442629bc3231bb4d41263039"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp37-cp37m-win_amd64.whl",
"has_sig": false,
"md5_digest": "38f00a2cfaf41839a397fc494302fa11",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 115340,
"upload_time": "2025-07-26T05:46:26",
"upload_time_iso_8601": "2025-07-26T05:46:26.413135Z",
"url": "https://files.pythonhosted.org/packages/72/67/b6b49c0617681d4f616d52d6086c9620eb6ff9fee350f2127badb48b5f99/xs3d-1.12.0-cp37-cp37m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "19cb451591bc35f3ccbf2b5d1918303bcc93ed05e0c97179478953c408157a0e",
"md5": "2ed4965841cbe16048a47f4053663993",
"sha256": "3c361236d031d0133edd608108972fe94f4dc8fa5349eabf18652c7aefe765fc"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp38-cp38-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "2ed4965841cbe16048a47f4053663993",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 132340,
"upload_time": "2025-07-26T05:46:28",
"upload_time_iso_8601": "2025-07-26T05:46:28.086073Z",
"url": "https://files.pythonhosted.org/packages/19/cb/451591bc35f3ccbf2b5d1918303bcc93ed05e0c97179478953c408157a0e/xs3d-1.12.0-cp38-cp38-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f5819de0fe8aa861fb2868b63bef844b914a44ef9887cf6dfadd0f2ce9e7df78",
"md5": "9c919a1d1d30a4ab34bb169cd5445c7b",
"sha256": "ce2f902de8644b906893377a5d1884b44235f031d17bc9638a280dbdf32d0f38"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp38-cp38-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "9c919a1d1d30a4ab34bb169cd5445c7b",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 119675,
"upload_time": "2025-07-26T05:46:29",
"upload_time_iso_8601": "2025-07-26T05:46:29.315013Z",
"url": "https://files.pythonhosted.org/packages/f5/81/9de0fe8aa861fb2868b63bef844b914a44ef9887cf6dfadd0f2ce9e7df78/xs3d-1.12.0-cp38-cp38-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "08747930f2a1c1cfa4ae93107cac6513d48f4d82c1d02c914500cd823d014aa3",
"md5": "76f0bc0ba02bfe51f96f679965e0693d",
"sha256": "e0c5ba00384cd8312ffb8a2b357c756bc4cbddf3671d6520fb34d3667a977697"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "76f0bc0ba02bfe51f96f679965e0693d",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 169848,
"upload_time": "2025-07-26T05:46:30",
"upload_time_iso_8601": "2025-07-26T05:46:30.553687Z",
"url": "https://files.pythonhosted.org/packages/08/74/7930f2a1c1cfa4ae93107cac6513d48f4d82c1d02c914500cd823d014aa3/xs3d-1.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "078c4e2d641d94f7fdb7d58e51671f1011ef4cf1bb46ac8dda38731f3fe05c8c",
"md5": "591399892cc44f0c0238ea002fe21c73",
"sha256": "6d6a66cc20ed967d7d356c627fddc09dc07326b6e34a6d9e6bdb1da05a9679c9"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp38-cp38-win32.whl",
"has_sig": false,
"md5_digest": "591399892cc44f0c0238ea002fe21c73",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 111310,
"upload_time": "2025-07-26T05:46:32",
"upload_time_iso_8601": "2025-07-26T05:46:32.793515Z",
"url": "https://files.pythonhosted.org/packages/07/8c/4e2d641d94f7fdb7d58e51671f1011ef4cf1bb46ac8dda38731f3fe05c8c/xs3d-1.12.0-cp38-cp38-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0704f879a11586cb48191825f53252430adb3e219213ada9393f099665e1f6d6",
"md5": "9fcfdd3f0bed911c4d1424821cf5f7fa",
"sha256": "3398cdb4efe57d9a639cbb2db35a25edebfd09ff232848113a99a2b69bfaa17f"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "9fcfdd3f0bed911c4d1424821cf5f7fa",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 119190,
"upload_time": "2025-07-26T05:46:31",
"upload_time_iso_8601": "2025-07-26T05:46:31.768695Z",
"url": "https://files.pythonhosted.org/packages/07/04/f879a11586cb48191825f53252430adb3e219213ada9393f099665e1f6d6/xs3d-1.12.0-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ec7d58d126a8b65a2003ee8daa9e93fd801077d3659f8ad65aefa4234d28b57c",
"md5": "a3493d7790a55e08cbcf8e17774d8f18",
"sha256": "0d1afd175fab66688b742363f069db43b8d77742bfb8b163fe5527e78fe009a2"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "a3493d7790a55e08cbcf8e17774d8f18",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 132790,
"upload_time": "2025-07-26T05:46:33",
"upload_time_iso_8601": "2025-07-26T05:46:33.611188Z",
"url": "https://files.pythonhosted.org/packages/ec/7d/58d126a8b65a2003ee8daa9e93fd801077d3659f8ad65aefa4234d28b57c/xs3d-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "281938635a7c62f39c52eea9924f5a35ea12968305a24b62417a4c21771d257d",
"md5": "28c8e86ea7c84e2a1913abc09543d0c3",
"sha256": "092e3f148aacc3efd4a520b2140f958142e66a601d3fec61c9d51d207d113f27"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "28c8e86ea7c84e2a1913abc09543d0c3",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 120098,
"upload_time": "2025-07-26T05:46:34",
"upload_time_iso_8601": "2025-07-26T05:46:34.547197Z",
"url": "https://files.pythonhosted.org/packages/28/19/38635a7c62f39c52eea9924f5a35ea12968305a24b62417a4c21771d257d/xs3d-1.12.0-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8af8c3e9fe6ecf8bc468647f9a896c0ae72650ca6309f5dc3697b5a88be1ad97",
"md5": "a04ac476d5311477804645dba42fce80",
"sha256": "e6234da545624d4617f73950decd389cfa3adeeedb166292736364bb2becdfcf"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "a04ac476d5311477804645dba42fce80",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 170380,
"upload_time": "2025-07-26T05:46:35",
"upload_time_iso_8601": "2025-07-26T05:46:35.683199Z",
"url": "https://files.pythonhosted.org/packages/8a/f8/c3e9fe6ecf8bc468647f9a896c0ae72650ca6309f5dc3697b5a88be1ad97/xs3d-1.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a8a160c68a30dee133c4af3361b770dbb295e4db7194f3caf6d2e0ff0349362d",
"md5": "36f8f39d730321bd73ca534cbed3ce1e",
"sha256": "88fe8854ac7fdf64854db5abe3290c58e74c243ede17f72f92f4686b00fd68b2"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "36f8f39d730321bd73ca534cbed3ce1e",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 111384,
"upload_time": "2025-07-26T05:46:37",
"upload_time_iso_8601": "2025-07-26T05:46:37.669772Z",
"url": "https://files.pythonhosted.org/packages/a8/a1/60c68a30dee133c4af3361b770dbb295e4db7194f3caf6d2e0ff0349362d/xs3d-1.12.0-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "29559e4672c841a92bf9b040e88cfbde8f8155d5e7a0761882158a2dab4a045a",
"md5": "64d16dc738d2bae27d04f105347818dc",
"sha256": "e787d19f4d47d0d4458e6bbf868ac89db89dd6e60247370cb3903f232d6b29da"
},
"downloads": -1,
"filename": "xs3d-1.12.0-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "64d16dc738d2bae27d04f105347818dc",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 120236,
"upload_time": "2025-07-26T05:46:36",
"upload_time_iso_8601": "2025-07-26T05:46:36.858356Z",
"url": "https://files.pythonhosted.org/packages/29/55/9e4672c841a92bf9b040e88cfbde8f8155d5e7a0761882158a2dab4a045a/xs3d-1.12.0-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c0f7d7820be0f82a72336f2b4823cb6b9d2ad71642670a05f2b7d52178973258",
"md5": "6c36cb2e39f896fbdd80bd158612514b",
"sha256": "8fa1e981252498d58806d7b398626939c1399a41d2bcdcc145ab17a58a20d0c9"
},
"downloads": -1,
"filename": "xs3d-1.12.0.tar.gz",
"has_sig": false,
"md5_digest": "6c36cb2e39f896fbdd80bd158612514b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 41022,
"upload_time": "2025-07-26T05:46:38",
"upload_time_iso_8601": "2025-07-26T05:46:38.525434Z",
"url": "https://files.pythonhosted.org/packages/c0/f7/d7820be0f82a72336f2b4823cb6b9d2ad71642670a05f2b7d52178973258/xs3d-1.12.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-26 05:46:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "seung-lab",
"github_project": "cross-section",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "xs3d"
}