Skip to main content

3DStructGen: an interactive web-based 3D structure generation for non-periodic molecule and crystal



The increasing number of organic and inorganic structures promotes the development of the “Big Data” in chemistry and material science, and raises the need for cross-platform and web-based methods to search, view and edit structures. Many web-based three-dimensional (3D) structure tools have been developed for displaying existing models, building new models, and preparing initial input files for external calculations. But few of these tools can deal with crystal structures.


We developed a user-friendly and versatile program based on standard web techniques, such as Hyper Text Markup Language 5 (HTML5), Cascade Style Sheet (CSS) and JavaScript. Both non-periodic organic molecule and crystal structure can be visualized, built and edited interactively. The atom, bond, angle and dihedral in a molecule can be viewed and modified using sample mouse operations. A wide range of cheminformatics algorithms for crystal structure are provided, including cleaving surfaces, establishing vacuum layers, and building supercells. Four displayed styles, namely “Primitive cell”, “Original”, “In-cell” and “Packing” can be used to visualize a unit cell. Additionally, the initial input files for Vienna Ab-initio Simulation Package (VASP) and Gaussian can be obtained by interacting with dialog boxes in 3DStructGen.


3DStructGen is a highly platform-independent program. It can provide web service independently or can be integrated into other web platforms. Other than local desktop software, it does not require any additional effort to install the system but a web browser supporting HTML5. 3DStructGen may play a valuable role in online chemistry education and pre-processing of quantum calculations. The program has been released under MIT open-source license and is available on:


Molecular visualization plays a vital role in constructing databases and repositories, preparing initial structures for quantum and molecular dynamics calculations, and analyzing the trajectory coordinates in real time. Visualizing and interactively editing the structure of the molecules can effectively reduce the simulation threshold and improve efficiency. Recent development in the field of high-performance computing (HPC) and cloud computing has led to many online computing platforms. For instance, MatCloud [1], rescale [2], WebMO [3], and MolCalc [4], provide web services for materials and chemistry calculation. These web-based tools provide remotely controlling computing resources, and their accessibility and compatibility make them extremely popular. Nowadays, it is common to use the web-based 3D structural visualization and editor tools to generate the model structures and prepare the input files for simulations.

The state-of-the-art visualization software in the field of computational chemistry is mainly developed on desktop environment, such as Avogadro [5], Materials Studio [6], and VESTA [7]. With the increasing demand for web-based visualization, several relevant tools have emerged. For instance, 3Dmol [8], JSmol [9] and Web3DMol [10] contain powerful visualization capabilities, but the structure editing function is missing. Another tools, such as ChemdoodleWeb [11], Kekule.js [12], JSME [13], can only edit 2 dimension (2D) structures. 3D structure editing tools (e.g., ChemMozart [14], CH5M3D [15]) are also reported in the literature. However, these tools focus on organic molecular modeling and do not support processing of crystal structure. In addition, ChemMozart is implemented using node.js framework, and it cannot be used as a lightweight library alone.

In order to process chemical information on web server, we developed an advanced chemical visualization and editor program with the following features. Firstly, both non-periodic organic molecule and crystal structure can be visualized, built and edited interactively. Secondly, a wide range of cheminformatics algorithms for crystal structure are provided, such as cleaving surfaces, establishing vacuum layers, and creating supercells. Thirdly, it is a lightweight library implemented using JavaScript, and it can be easily used to provide web service independently or integrated into other web platforms. Finally, the initial input files for VASP [16, 17] and Gaussian [18] can be generated by interacting with dialog boxes.


Same as most graphical user interface (GUI) programs for computing chemistry [5,6,7, 19], 3DStructGen focuses on generation of initial molecular geometry. As shown in Fig. 1, the basic modules of molecule, crystal and surface slab consist of several methods to deal with non-periodic molecule, periodic crystal, as well as surface slab system, respectively. The HTML5 canvas is the central module for displaying 3D structures and connecting all other modules. The mouse module provides a number of interactive operations by mouse for users. The processing methods for general chemical file formats (XYZ, SD, MOL, CIF) are supported in IO module, and the initial input file for VASP and Gaussian can be produced using interface module. The explorer module prints the interactive information (e.g., file name, lattice parameter, atom distance, atom coordinate, etc.) for users in real-time. Additionally, ChemKit API provides extensions of 3DStructGen by integrating other cheminformatics tools.

Fig. 1

Overview of the core modules and functions in 3DStructGen

Element, atom and molecule

The parameters of elements (e.g., atom number, element symbol, atomic mass, color, covalent radii, etc.) are defined as a list in “element ()” function. The “addElem ()” function is used to add an element specified by users, and the corresponding atom model will be visualized on canvas. All elements are displayed in the same color as in the VESTA program. The methane molecule is presented in the canvas when 3DStructGen is initialized. The “ball-and-stick” representation of the structures with the size of atoms based on their covalent radii by default. Besides, the “stick-and-line” models can be specified by users as well.

The “addAtom ()” and “delAtom ()” functions are used to add a new atom and delete an existing atom in a molecule, respectively. By default, a suitable number of hydrogen atoms will be added according to the rule of octet theory, and the bond angles are assigned a value based on orbital hybridization (sp3 in default) selected by users.

When a new atom is added, a bond is created within its value of the sum of covalent radii of the bonded atoms. The connection between pairs of atoms can be added using mouse operations by calling “addBond ()” function, defined in files or calculated by the 3DStructGen. The “createBond ()” function describes the detailed the bonding rule: firstly, a list of possible bonding atoms based on the bond valance model [20] are built, and then the distance for these possible bonding atoms are calculated. A bond is created if the distance falls between 0.5 and 1.2 times the sum of the covalent radii for these bonding atoms. Here, the 0.5 times distance is used to avoid bonding between the closed atoms (maybe overlap atoms). The “bondMatrix ()” function defines a public routine to store and return the bond list. The graph-labeling algorithm [21] (pseudo code in Fig. 2) used for recognizing framework and guest (including solvent molecule) are developed to deal with metal–organic frameworks (MOF) in Cambridge structural database (CSD) database. Our bonding method has shown satisfactory results for this task, and the visualization results can be found in the “Structure visualization” section.

Fig. 2

The pseudo code of graph-labeling algorithm

When a structure is created, an atom or a group of atoms selected by users can be moved in up, down, left and right directions by a user-specified distance. A crude geometry optimization is supported for non-periodic molecule by optimizing the bond lengths, bond angles and dihedral following the same method in CH5M3D [15]. An optional geometry optimization based on force filed method is also provided by the using ChemKit API, which is explained in further details in the “ChemKit API” section.

Crystal and surface slab

The “buildCrystal ()” function is used to build crystal lattice structure. By clicking the dialog box of “build crystal”, the symmetry space groups (230 in total), lattice parameters, atom types and coordinates can be interactively selected or edited by users. When all the operations are finished, a crystal structure will be shown in the canvas.

The supercell slab is a structural model used in quantum or molecular dynamics simulations to study the surface kinetic [22], thermodynamic [23], and electronic [24] properties. The “cleaveSurf ()” function shows an algorithm to construct surface slab with any Miller index orientation from a bulk unit cell of any Bravais lattice. A slab with two surfaces is embedded with vacuum regions in a supercell. Sun [25] proposed an efficient algorithm for constructing slab surface, and the same method is used to find two basis vectors that span a given surface orientation, \(\varvec{v}_{1}\) and \(\varvec{v}_{2}\). The followings are the detailed descriptions:

If a Miller index contains no zeros, we take (hkl) as an example:

$$\begin{aligned} & \varvec{p}_{1} = \left( {M/h} \right){\mathbf{a}} \\ & \varvec{p}_{2} = \left( {M/k} \right){\mathbf{b}} \\ & \varvec{p}_{3} = \left( {M/l} \right){\mathbf{c}} \\ \end{aligned}$$

If a Miller index contains one zero, we take (hk0) as an example:

$$\begin{aligned} & \varvec{p}_{1} = \left( {M/h} \right){\mathbf{a}} \\ & \varvec{p}_{2} = \left( {M/k} \right){\mathbf{b}} \\ & \varvec{p}_{3} = \varvec{p}_{1} + {\mathbf{c}} \\ \end{aligned}$$

If a Miller index contains two zeros, we take (h00) as an example:

$$\begin{aligned} & \varvec{p}_{1} = \left( {0, 0, 0} \right) \\ & \varvec{p}_{2} = {\mathbf{b}} \\ & \varvec{p}_{3} = {\mathbf{c}} \\ \end{aligned}$$

Where the a, b and c are [100], [010] and [001], respectively. The \(M\) is the least common multiple of h, k and l. Then we get the \(\varvec{v}_{1}\) and \(\varvec{v}_{2} \varvec{ }\) by:

$$\begin{aligned} & \varvec{v}_{1} = \varvec{p}_{1} - \varvec{p}_{1} \\ & \varvec{v}_{2} = \varvec{p}_{3} - \varvec{p}_{1} \\ \end{aligned}$$

If we define the \(\varvec{v}_{1} = \left( {v_{11} , v_{12} , v_{13} } \right),\) \(\varvec{v}_{2} = \left( {v_{21} , v_{22} , v_{23} } \right)\) and \(\varvec{v}_{3} = \left( {v_{31} , v_{32} , v_{33} } \right)\), then we get the third Bravais lattice vectors \(\varvec{v}_{3}\) that is maximally orthogonal to these two basis vectors by:

$$\begin{aligned} & v_{31} = v_{12} *v_{23} - v_{13} *v_{22} \\ & v_{32} = v_{13} *v_{21} - v_{11} *v_{23} \\ & v_{31} = v_{11} *v_{22} - v_{12} *v_{21} \\ \end{aligned}$$

When the three Bravais lattice vectors of \(\varvec{v}_{1}\), \(\varvec{v}_{2}\) and \(\varvec{v}_{3}\) are determined, the surface-oriented basis transformation is performed and we can get surface slab by these vectors.

For a crystal structure composed of a unit cell, and a set of atoms are arranged in a way that the atoms are periodically repeated in three dimensions on a lattice. The “displayStyle ()” function provides several methods to display the repeated atoms, and the relevant images are shown in Fig. 3. The following options can be chosen in the 3DStructGen:

Fig. 3

A crystal structure (CSD code: WAJZUE) is depicted in different styles. a asymmetric style; b original style; c in-cell style; d packing style. This structure is given in Additional file 1

  • “Asymmetric”: The minimal subunit of a crystal is presented, consisting of one or more atoms, ions, or molecules, of which geometric arrangement is not related by crystallographic symmetry.

  • “Original”: Using this style, each atom will be displayed in its original location, together with copies formed by applying each of the operators of the symmetry group.

  • “In-cell”: The atoms are displayed based on whether their coordinates, as well as their symmetric copies are in the lattice cell.

  • “Packing”: The complete molecules and their symmetric copies in a lattice cell will be displayed depending on the geometric center of connected sets of atoms. This gives a display of conventional cell for most types of crystal system.

The above styles allow users to visualize atoms in desired manners for different scenarios. The “Asymmetric” may be useful to focus on details of the minimal structure when all the copies are invisible, especially for large and complex models. The “Original” and “Packing” styles provide the copies of units, which demonstrate symmetric information of a crystal. The “In-cell” style catches a glimpse of all possible atoms in the lattice cell, which matches the real scene of truncating a lattice cell from the whole periodic system.

2D canvas and mouse

The HTML5 canvas is a revolutionary technology for graphics and visualization on the web. Powered by JS, the HTML5 Canvas API allows 3DStrcutGen to create visualizations and animations of 3D structures on a 2D canvas in the browser without additional plugins. The <canvas> tag creates a bitmapped surface to be drawn and viewed in a HTML document. Although the canvas element is 2D, atoms are sorted by depth and drawn from back-to-front to show 3D effect.

Users can interact with the canvas using mouse. The functions of “mouseMove ()”, “mouseWheel ()”, “mouseDown ()” and “mouseUp ()” are designed to respond to the corresponding mouse events triggered by users. The separated “display mode” and “edit mode” have different mouse events. In display mode, the structure in the canvas can be rotated, translated and the information of atom, bond and angle can be selected to display. While in the edit mode, the structure can be edited. For instance, the “onAtom ()” function returns whether the mouse is within some distance to the selected atom. If the function returns “true”, this atom will be assigned.

IO and explorer

3DStructGen implements a wide range of cheminformatics algorithms for handling chemical data, including non-periodic molecule and crystal structure. For non-periodic molecule, several file formats (XYZ, SD and MOL) are supported in 3DStructGen. Note that the CIF files obtained from different database or exported by different software may contain minor difference, which can lead to unsuccessful data reading. We have performed a comprehensive test using data from inorganic crystal structure database (ICSD) [26], Cambridge structural database (CSD) [27], crystallography open database (COD) [28] and Materials Studio software.

The explorer module contains a system window to display the imported file information (e.g., file name, lattice size, formula, etc.), and a property window to print the structure information (e.g., atom coordinate, bond distance, angle size, etc.) when a user interacts with the canvas.

Calculation interface

In order to facilitate the quantum calculation, we developed the input file generation interfaces for quantum calculation software, including VASP and Gaussian. For VASP, the initial files of INCAR and KPOINTS can be created online by setting the corresponding parameters in the dialogs, and the information of atoms and lattice of the existed crystal structure in the canvas is written into POSCAR. Gaussian is a popular alternative for non-periodic molecules, and only one input file needs to be prepared. Similarly, a dialog is designed for setting parameters and a file named “Gaussian.gif” will be generated when all interactive operations are performed. It should be noted that the calculation interface is independent to 3DStructGen except for structure information. Thus, the other calculation interfaces can be easily added into this program.

ChemKit API

ChemKit API is a RESTful web service that wraps the cheminformatics tools of Open Babel [29] and spglib [30], and expands the capacity of the 3DStructGen. Open Babel is a popular chemical toolbox to handle non-periodic molecule structures, and the spglib is a useful tool for finding and processing crystal symmetries. The ChemKit API is not a part of the 3DStructGen, but an optional tool. The following code shows an example of optimizing the molecule geometry in the canvas using Open Babel:



The core of this program is written in JavaScript, which has no special requirement for installation but a web browser supporting HTML5. This package has been extensively tested with recent versions of the most commonly used browsers, namely, Microsoft Internet Explorer (v10), Mozilla Firefox (v19), Google Chrome (v70) and Opera (v12). The ChemKit API is an optional tool for 3DStructGen, which can be used when the local devices connect to the internet.

Result and discussion

User interface

Figure 4 displays the user interface of the 3DStructGen. On the left side of the canvas, there are the dialog buttons for viewing and editing the structure interactively. The separate “display” and “edit” modes can be switched by users, and the corresponding dialog buttons will be activated or deactivated accordingly. The top side of the canvas is the functional zone, where users can choose to load a new file, build complex crystal structure, clear up canvas or system window, prepare the initial input files for quantum calculation, and perform other functions. The system and property windows are showed on the right side of canvas. The new file information (e.g., file name, structure formula, lattice parameters, etc.) will be printed on the system window, while the structure information, including atom types, coordinates, bond distance, angle size will be displayed on the property window.

Fig. 4

The initial user interface of 3DStructGen

Structure visualization

In order to demonstrate the capacities of our program, a number of snapshots generated by 3DStructGen has been provided. Organic molecules are the most commonly used structures in the field of cheminformatics. Figure 5 shows an illustration of a non-periodic molecule with double bonds (Fig. 5a) and organic crystal structure (Fig. 5b) in the canvas of 3DStructGen, respectively. The Metal–Organic Framework is a specific structure in chemistry, Fig. 5c illustrates an example of Metal–Organic Framework structure, and Fig. 5d shows the highlighted framework molecules with yellow color.

Fig. 5

The images of a non-periodic molecule and organic crystal structure. a An organic molecule containing double bonds; b organic crystal structure (CSD code: PONCOL) displayed with “Packing” style. c metal–organic framework structure (CSD code: ABEXEN) displayed with “Packing” style. d The framework molecule is highlighted with yellow color. The organic crystal structures can be found in supplement (see Additional file 1)

Figure 6 shows another example of inorganic compound of CoS2. The unit cell of CoS2 and its supercell of 2 × 2 × 2 are depicted in Fig. 6a, b, respectively. Figure 6c shows the (111) surface slab with a 10 Å thickness. The two basis vectors of (− 1, 1, 0) and (− 1, 0, 1) that span a given surface orientation are automatically generated by 3DStructGen when the vector of cleaving plane has been conformed (seeing dialog box in Fig. 6e). Finally, a new crystal structure with 10 Å vacuum layer has been created in Fig. 6d.

Fig. 6

The inorganic crystal structures representations. a Inorganic crystal structure of CoS2 (ICSD code: 86351); b supercell model with 2 × 2 × 2. c Cleaving the unit cell with (111) surface. d Constructing the (111) surface slab of CoS2 with a 10 vacuum. e The dialog box of “cleave surface”. The CoS2 structure is given in Additional file 1

Interface for preparing quantum calculation input files

When the simulation structure has been built on the canvas successfully, the dialog of Quantum interface can be used to prepare the input files for the calculation software. To allow convenient submission of computing tasks and reduce the time cost of the calculation preparation stage, 3DStructGen provides two kinds of quantum interface for Gaussian and VASP (i.e. *.gjf file for Gaussian and INCAR, POSCAR and KPOINTS file for VASP), respectively. In this section, the Gaussian interface will be introduced in detail.

The Gaussian interface is mainly composed of three parts: Job type, Method, and General, which are corresponding to the part a, b and c in Fig. 7, respectively. Firstly, different types of tasks are available for selection in the Job type section. In addition to the Optimization module shown in the figure, the section also contains Energy, Frequency, Opt + Freq, IRC, Scan, Stability, NMR, BOMD and ADMP modules, which cover almost all basic computing task types. After a specific task type is selected, Method section shows an interface of the more explicit parameter settings for calculation. The different job types offer different parameter settings option. For instance, in Optimization module, the calculation method, basic set used, spin and charge can be chosen based on user specific molecule model and simulation demand. Here, we chose the DFT method and 3-21G basis set, and set the exchange–correlation to B3LYP and the other options to the respective default values. Finally, several general settings can be tuned in the General section, such as Use Quadratically Convergent SCF, Ignore Symmetry, Write Connectivity etc., when the required calculation parameters are confirmed, one can click the Export file button to obtain the Gaussian calculation input file generated by 3DStructGen automatically. The following shows the content of an exported file:

Fig. 7

The snapshot of dialog box of Gaussian interface and relevant functional parts in 3DStructGen


This process of 3DStructGen will greatly facilitate users to prepare their calculation tasks.

Comparisons with other web-based visualization programs

For an advanced web-based visualization program, displaying and editing the structure in 3D are crucial. As shown in Table 1, all programs support 3D visualization but JSME, which is a 2D molecule editor facilitating graphical input and interactive editing of molecules. JSmol and 3Dmol.js are the pure 3D representation of molecular structure. The 2D technology can deal with non-periodic molecule. Examples are Chemdoodle and Kekule.js, which contain a separate 2D editor for creating the initial structure and viewing the structure on 3D canvas. But these methods are inoperative for periodic crystal. As a result, combining the displaying and editing function into one canvas maybe a promising method, and the WebMO, Marvin.js, Chemozart, CH5M3D belong to this category. WebGL is an advanced technology by using hardware-acceleration, which allows larger molecules to be visualized, provides smoother interaction, and produces higher-resolution picture. The WebMO and Chemozart are good examples equipped with WebGL. However, Chemozart is still in its initial version and only support for non-periodic molecules. WebMO satisfies all the previous conditions, but it requires commercial license and it is not open source for academic users. 3DStructGen supports for the 3D visualization and editing of non-periodic molecule, crystal and surface slab, and the source code is free to users, which is still competitive compared with other web-based visualization programs. The initial version of 3DStructGen focuses on developing general functions, preparing the input files for the quantum calculations. The implementation of WebGL is desirable and will be considered in a future version.

Table 1 Comparisons of the popular web-based visualization programs

Extensions for web-based tools

Comparing to local desktop packages, the complex software system for web-based tools in the field of cheminformatics is still limited by webpage programing language and data transmission. For instance, the Open Babel library was originally written in C++, and the author of Kekule.js tried to compile the Open Babel into JavaScript by Emscripten to support more chemical file formats and molecule force field calculation [12]. However, the JavaScript version Open Babel is about 10 MB, and a long time is needed to transfer all the data over the Internet. Thus, a RESTful web service wrapping the cheminformatics tools maybe a practical solution. The ChemDoodle tool gives an example of accessing the ChemDoodle desktop API by using iChemLabs cloud services for additional tools [11]. In our program, we also provide a free ChemKit API for expanding the capacity of web-based tools.


We introduced a user-friendly and versatile program to view, build and edit non-periodic organic molecule and crystal structure using standard web techniques, such as HTML5, CSS and JavaScript. The improved capacity for crystal structures expands scope of applications in the field of cheminformatics. It is well designed with numerous functional modules and flexible enough to integrated with another program. The highly platform-independent nature allows 3DStructGen to be easily installed, requiring no additional software or any special permissions. This program is released under MIT license, which is free and open source for users. We hope that the 3DStructGen can play a vital role in online chemistry education and pre-processing of quantum calculations.

Availability of data and materials

The source code of this program is available for download from page Additional file 1 covers the structure files used in this article.


  1. 1.

    Yang X, Wang Z, Zhao X, Song J, Zhang M, Liu H (2018) MatCloud: a high-throughput computational infrastructure for integrated management of materials simulation, data and resources. Comput Mater Sci 146:319–333

    CAS  Article  Google Scholar 

  2. 2.

    Rescale. Accessed 15 Jun 2019

  3. 3.

    Schmidt J, Polik W (2013) WebMO enterprise. WebMO LLC, Holland

    Google Scholar 

  4. 4.

    Jensen JH, Kromann JC (2013) The molecule calculator: a web application for fast quantum mechanics-based estimation of molecular properties. J Chem Educ 90(8):1093–1095

    CAS  Article  Google Scholar 

  5. 5.

    Hanwell MD, Curtis DE, Lonie DC, Vandermeersch T, Zurek E, Hutchison GR (2012) Avogadro: an advanced semantic chemical editor, visualization, and analysis platform. J Cheminf 4(1):17

    CAS  Article  Google Scholar 

  6. 6.

    Biovia DS (2016) BIOVIA materials studio. San Diego, CA, p 92121

    Google Scholar 

  7. 7.

    Momma K, Izumi F (2011) VESTA 3 for three-dimensional visualization of crystal, volumetric and morphology data. J Appl Crystallogr 44(6):1272–1276

    CAS  Article  Google Scholar 

  8. 8.

    Rego N, Koes DR (2015) 3Dmol.js: molecular visualization with WebGL. Bioinformatics 31(8):1322–1324

    Article  Google Scholar 

  9. 9.

    Hanson RM, Prilusky J, Renjian Z, Nakane T, Sussman JL (2013) JSmol and the next-generation web-based representation of 3D molecular structure as applied to proteopedia. Isr J Chem 53(3–4):207–216

    CAS  Article  Google Scholar 

  10. 10.

    Shi M, Gao J, Zhang MQ (2017) Web3DMol: interactive protein structure visualization based on WebGL. Nucleic Acids Res 45:W523–W527

    CAS  Article  Google Scholar 

  11. 11.

    Burger MC (2015) ChemDoodle Web Components: HTML5 toolkit for chemical graphics, interfaces, and informatics. J Cheminf 7(1):35

    Article  Google Scholar 

  12. 12.

    Jiang C, Jin X, Dong Y, Chen M (2016) Kekule.js: an Open Source JavaScript Chemoinformatics Toolkit. J Chem Inf Model 56(6):1132–1138

    CAS  Article  Google Scholar 

  13. 13.

    Bienfait B, Ertl P (2013) JSME: a free molecule editor in JavaScript. J Cheminf 5(1):24

    CAS  Article  Google Scholar 

  14. 14.

    Mohebifar M, Sajadi F (2015) Chemozart: a web-based 3D molecular structure editor and visualizer platform. J Cheminf 7(1):56

    Article  Google Scholar 

  15. 15.

    Earley CW (2013) CH5M3D: an HTML5 program for creating 3D molecular structures. J Cheminf 5(1):46

    Article  Google Scholar 

  16. 16.

    Kresse G, Furthmüller J (1996) Efficiency of ab initio total energy calculations for metals and semiconductors using a plane-wave basis set. Comput Mater Sci 6(1):15–50

    CAS  Article  Google Scholar 

  17. 17.

    Kresse G, Hafner J (1994) Ab initio molecular-dynamics simulation of the liquid-metal–amorphous-semiconductor transition in germanium. Phys Rev B 49(20):14251

    CAS  Article  Google Scholar 

  18. 18.

    Frisch MJ (2009) Gaussian09. Accessed 22 May 2019

  19. 19.

    Dennington R, Keith T, Millam J (2009) GaussView, version 5. Semichem Inc, Shawnee Mission

    Google Scholar 

  20. 20.

    Brown ID (2016) The chemical bond in inorganic chemistry: the bond valence model, vol 27. Oxford University Press, Oxford

    Google Scholar 

  21. 21.

    Goldsmith J, Wongfoy AG, Cafarella MJ, Siegel DJ (2013) Theoretical limits of hydrogen storage in metal-organic frameworks: opportunities and trade-offs. Chem Mater 25(16):3373–3382

    CAS  Article  Google Scholar 

  22. 22.

    Smith JG, Jain PK (2016) Kinetics of self-assembled monolayer formation on individual nanoparticles. Phys Chem Chem Phys 18(34):23990–23997

    CAS  Article  Google Scholar 

  23. 23.

    Zhou D-D, Chen P, Wang C, Wang S-S, Du Y, Yan H, Ye Z-M, He C-T, Huang R-K, Mo Z-W et al (2019) Intermediate-sized molecular sieving of styrene from larger and smaller analogues. Nat Mater 18(9):994–998

    CAS  Article  Google Scholar 

  24. 24.

    Wang F, Shifa TA, He P, Cheng Z, Chu J, Liu Y, Wang Z, Wang F, Wen Y, Liang L (2017) Two-dimensional metal phosphorus trisulfide nanosheet with solar hydrogen-evolving activity. Nano Energy 40:673–680

    CAS  Article  Google Scholar 

  25. 25.

    Sun W, Ceder G (2013) Efficient creation and convergence of surface slabs. Surf Sci 617:53–59

    CAS  Article  Google Scholar 

  26. 26.

    Belsky A, Hellenbrandt M, Karen VL, Luksch P (2002) New developments in the Inorganic crystal structure database (ICSD): accessibility in support of materials research and design. Acta Crystallograph Sect B 58(3 Part 1):364–369

    Article  Google Scholar 

  27. 27.

    Allen F (2002) The Cambridge structural database: a quarter of a million crystal structures and rising. Acta Crystallograph Sect B 58(3):380–388

    Article  Google Scholar 

  28. 28.

    Gražulis S, Daškevič A, Merkys A, Chateigner D, Lutterotti L, Quirós M, Serebryanaya NR, Moeck P, Downs RT, Le Bail A (2012) Crystallography open database (COD): an open-access collection of crystal structures and platform for world-wide collaboration. Nucleic Acids Res 40:420–427

    Article  Google Scholar 

  29. 29.

    Oboyle NM, Banck M, James CAJ, Morley C, Vandermeersch T, Hutchison GR (2011) Open babel: an open chemical toolbox. J Cheminf 3(1):33

    CAS  Article  Google Scholar 

  30. 30.

    Togo A, Tanaka I (2018) Spglib: a software library for crystal symmetry search. Mater Sci. arXiv:1808.01590 (submitted)

Download references


We are thankful to the members of the National Supercomputer Center in Guangzhou (NSCC-GZ) who contributed with manifold suggestions to this program.

Availability and requirements

Project name: 3DStructGen.

Project home page:

Operating system(s): Platform independent.

Programing language: JavaScript, HTML5, CSS.

Other requirements: Web browser supporting HTML5, ChemKit API (optional).

License: MIT.

Any restrictions to use by non-academics: None.


This project was supported in part by Guangdong Province Key Area R&D Program (2019B010940001), National Key R&D Program of China (2017YFB0203702), GD frontier & Key Tech, Innovation Program (2015B010109004).

Author information




YFD coordinated and managed this project. PC and YW implemented the program with assistance from HY, YZL, JHL, GCQP, JKH, JT. Specifically, SG, ZXX and QM contributed to the Gaussian calculation interface, user interface and ChemKit API, respectively. All authors read and approved the final manuscript.

Corresponding author

Correspondence to Yunfei Du.

Ethics declarations

Competing interests

The author declares that they have no competing interests.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Supplementary information

Rights and permissions

Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit The Creative Commons Public Domain Dedication waiver ( applies to the data made available in this article, unless otherwise stated in a credit line to the data.

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Chen, P., Wang, Y., Yan, H. et al. 3DStructGen: an interactive web-based 3D structure generation for non-periodic molecule and crystal. J Cheminform 12, 7 (2020).

Download citation


  • Visualization
  • HTML5
  • Structure editor
  • 3D