SuperScanner Software (S3), part of SuperScanner project, is a open-source and completely free software environment to implement a low-cost scanner 3D, which is also a microscope and a 3D printer.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

SuperScanner Software (S3)

SuperScanner Software (S3) is an free and open-source software environment used for implementing a low-cost scanner 3D, which can also function as a microscope and a 3D printer. S3 is the software portion of SuperScanner project. SuperScanner Software is licensed under GPLv2 license.

S3 is compatible with Microscopx, a project that enhances a low-cost microscope with this software.

The Framework (ES)

SuperScanner's Framework

Software Requirements

Note: These Jupyter modules has been tested in machinas that run the 64-bit version of KDE neon User Edition 5.12 based on the latest Ubuntu 16.04 LTS.

S3 is written in Python 3. Some modules can be executed from Jupyter notebooks, as scripts in Blender or both.


  • Git. Install it from command-line with $ sudo apt-get install git. After installing, execute:
$ cd ~
$ git clone
  • Anaconda Distribution: Python + «250+ popular data science packages». Please, install the version for Python 3, because S3 only works with Python 3.

Microscopy (for Microscopx)

OpenCV. We have tried with the 3.1.0 version and it works well (to 2018 March, 27th). After installing Anaconda Distribution, go to the command line and execute: $ conda install opencv.

3D Scanning (simulated)

We suggest the following order:

  1. openMVG by pmoulon to «recover camera poses and a sparse 3D point-cloud from an input set of images».

  2. openMVS by cdcseacave «to recover the full surface of the scene to be reconstructed» from the camera poses and the sparse 3D point-cloud obtained with openMVG.

  3. Blender. It can be installed from the command-line with $ sudo apt-get install blender.

  4. Mesurelt (optional) by Antonioya is an add-on «for displaying measures [of meshes] in the vewport» in Blender. Download the ZIP file and install it in Blender from FileUser Preferences...Add-onsInstall from File...

  5. py3exiv2: Allows to use the lib exiv2 with Python 3. exiv2 is a C++ library designed to handle the EXIF image metadata.

  6. IPython for Blender by panzi to run Blender scripts in Jupyter notebooks. Before installing, make sure you installed the dependences. Anaconda Distribution does not resolve them: $ sudo apt-get install python3-pip & sudo pip3 install --upgrade pip jupyter ipython notebook.

  7. MeshLab. Install with: $ sudo apt-get install meshlab.

Folders' Descriptions

Within the main folder:

  • arduino: Contains Arduino sketch projects' folders. For example, there is a sketch to turn Pixels on or off, test them or set a custom lighting sequence of the NeoPixel illuminator of Microscopx.

  • blend-meshes: Folder for the printable parts and pieces of SuperScanner Hardware (S2H), the complete model of the machine manipulable in Blender and scenes that execute the Blender scripts.

  • examples: Folder with sample Jupyter notebooks to try, for example, the Fourier Ptychography imaging technique from a simulated or real image set.

  • img: Contains some pictures that are used by some notebooks.

  • jupyter-modules: Where the Python modules written as Jupyter notebooks are stored. For example, there are notebooks that are used by the Fourier Ptychography reconstruction algorithm and access to the data and functions of Blender outside of this and simulate the picture taking process for photogrammetry.

  • parts: For now, the FreeCAD source and STL files of Microscopx are stored there.

  • scripts: Contains Python scripts (.py), for example, to call the external software during the photogrammetry process and put the LEDs in the illuminator in the blend model of the machine (S2H).

Importing and Executing the Code

In Blender

Blend scripts can be imported in Blender from Choose Screen layoutScriptingOpen. To execute them, press Run Script button and wait for the result.

Main References

Spring, K.; Komatsu H.; Scott, M.; Schwartz, S.; Fellers, T.; Carr, K.; Parry-Hill, M y Davidson, M. (2017). Microscopy Basics | MicroscopyU. Retrieved from

UCLA Technology Development Group. (2017). Computational Out-Of-Focus Imaging Increases The Space-Bandwidth Product In Lens-Based Coherent Microscopy. Retrieved from

Zheng, G. (2016). Fourier Ptychographic Imaging: A MATLAB® tutorial. San Rafael, CA: Morgan & Claypool Publishers.