the quest for
first online 3D
free 3D CAD
an initiative of Lai4d Systems
The design of 2D or 3D geometries is involved in most of science, art and engineering activities. Modern design tools are powerful and boost the productivity of designers, but require a lot of training, effort and time to achieve a good understanding and an efficient exploitation. LAI4D is a non-profit R&D project whose aim is to develop an artificial intelligence able to emulate cognitive functions regarding spatial imagination and other capabilities. This technology will help improve the communication between designers and design tools as well as accelerate the engineering process.
The practical implementation of the project has been conceived as a dual web application that
can work as a 3D viewer widget or as a free light 3D CAD tool providing
the adequate environment for the project. This CAD tool incorporates a special
capable of extracting conceptual geometries from pictures or sketches
provided by the user as input thanks to innovative AI algorithms.
Additionally LAI4D tries to reduce the inherent complexity of professional design tools which, despite being suitable for experienced users, are almost unreachable for other people not trained in the usage of CAD systems and only in need of an occasional use. The selected implementation approach not only allows the users an easy access to the tool, but is also an excellent mean to build a community of designers that will provide the necessary feedback for the system in order to make it bigger and smarter. Start creating 3D models with the LAI4D designer.
3D viewer and designer for the web,
in one, and is used as a test-bed for
the research. This widget can be easily embedded in other web pages in
form of an IFRAME element whose URL indicates the drawing source. The
viewer allows to render and explore 3D drawings in web pages without the
need of plugins even if the device is not WebGL enabled. The designer
is the free drawing tool for the people without the time to learn the usage
professional CAD application and that need results in minutes. It allows
to create 3D drawings by writing the description of the
geometries using a really simple language.
As opposed to most modern applications, direct source edition as plain text takes again relevance in LAI4D because it is straightforward for occasional and inexperienced users requiring a minimum learning effort. At the same time, the created drawings can be shared through the Internet uploading them to the LAI4D server from the own designer widget. And if a more advanced usage is required, a rich command and graphic interface is also available.
Although LAI4D has not been conceived as a professional CAD tool, it can handle any kind of design since it offers the following elements:
All graphic functions of LAI4D are based on the capabilities of the canvas HTML element. Although major web browsers are WebGL enabled, in case of need LAI4D can work both with WebGL and canvas 2D rendering contexts. Obviously the performance when using canvas 2D is less than that when using WebGL (accelerated graphics hardware) but, at least, it allows to handle 3D geometries in any device.
LAI4D can be used not only online but also offline. The LAI4D web page downloaded from the Internet can be saved to a local drive of the client's machine using the standard "Save as" function of the web browser normally located in the "File" menu. This will allow the user to work offline regardless of whether the LAI4D page has been cached or not by the browser. This is particularly necessary if the user wants to create a distributable HTML document containing embedded LAI4D drawings as IFRAME elements that can be displayed both online from the Internet or offline from the local drive of a computer.
The user interface is structured in order to allow an easy access to the functions. The most common functions are grouped at the corners of the viewport while the rest of functions and configurations are organized in a tree view control.
The detailed functionalities of LAI4D can be found in the reference manual at the documentation section.
We taught the machines to understand our speech. We taught the machines to understand our writing.
And now we are teaching the machines to understand our spatial ideas
Designers spend an important part of their work time transferring decisions to the design tool. This is normally done by means of commands configured with coordinates or other parameters. The design assistant available in the designer widget is an experimental tool intended to provide a new way of communication between the user and the design application. Its goal could be explained as the capability of understanding the user ideas. When the assistant analyzes a user's input, what it is essentially doing is trying to understand that input in order to generate a canonical or formal response ready to be exploited for design purposes. The tool can be basically used in two ways:
The sketch interpreter of the design assistant is the face of the conceptualizer program JAIC. The goal of this program is to "imagine" the conceptual
geometry represented by an imprecise raster image in a probabilistic way
regardless of whether it is a recognizable shape or not.
The sample image shows a set of irregular strokes at the left side, and
it is what it is, a sketch with irregular strokes. Despite their
imprecision, a person could also say that the strokes represent a
box, like the one at the right side. The necessary process to reach to
the conclusion that those irregular strokes are representing a
perspective view of a box is a conceptualization process. While a
box is a well-known shape, the conceptualization can also be extended
to the comprehension of non-recognizable and never-seen-before
geometries when such geometries have some kind of sense.
JAIC only uses recognition for the OCR function. Convolutional neural networks are very good for finding similarities between an input and a database of patterns, like in the OCR, but this approach is not enough to solve the problem of conceptualizing generic images. Although humans count with biological 3D sensors like stereographic view and ocular focus, much of the image interpretation is achieved through conceptualization. Indeed when a human watches TV or plays a computer simulation game or remotely pilots a vehicle through a screen, is the conceptual vision the only mechanism in charge of building the 3D scenes on his mind because no other 3D information is actually available. The LAI4D research is an indirect approach to the understanding of the human conceptual vision which probably is one of the key pieces for an enhanced motor dexterity of autonomous robots and higher cognitive capabilities like artificial imagination.
JAIC is progressively implementing the necessary knowledge to try to understand the 2D or 3D conceptual geometry represented by sketch images under certain conditions. When the analysis is successful the program generates the corresponding canonical geometric entities offering the possibility of adding them to the drawing. Although the current capabilities of JAIC are still very limited its potential is great.
Traditionally humans share complex ideas through plans, sketches or other graphic means because they are more efficient for transmitting the huge amount of information needed to describe such ideas. Unfortunately this strategy does not work so efficiently when the recipient is a machine since it usually demands the information in a canonical format. But, what if the machine were able to understand the user's ideas? That is the path LAI4D is trying to open by developing JAIC.
This technology is absolutely experimental and is at a very early stage of development. A big effort has been done for implementing the first versions as a client side application offering useful offline capabilities, but this cannot be a long term strategy due to the limited power of personal computers. In the future most of its functionality will run on remote servers better fitted for executing the heavy queries and brute force algorithms involved in artificial intelligence tasks. See the section "Working with sketches" of the Reference manual for more details.
LINKS TO OTHER RESOURCESAlthough the research carried out by LAI4D is quite singular due to the fact of not being based on conventional deep learning, there are other research projects or organizations pursuing similar goals. Next it is offered a list of interesting links that can be classified under the concepts of sketch recognition, 3D reconstruction or 3D shape retrieval, as well as others with a more general AI scope:
Beginner's tutorial: This
tutorial is the recommended introduction for all persons new to LAI4D.
It is intended to teach the basics of design in 20 minutes. It shows
step by step how to create a simple 3D geometry from the idea up to the
publishing of the drawing on the Internet using the easiest tools.
Thanks to this exercise the user will
understand the working philosophy
of LAI4D, will be able to generate
polyhedral surfaces and polygonal
lines with colors, and will learn to
share designs online. The created geometry can be inspected in the link:
► How to design a 3D model with LAI4D: This video-tutorial covers the designing of a 3D model using different strategies as well as its later saving to share it online. It is based on the Beginner's tutorial of the LAI4D designer but extended in order to show also how the user can work with the menu of commands or the sketch interpreter.
► UI quick help: This help document summarizes the functions available through the user's interface of the viewer widget.
► Reference manual: This document is the most complete guide to the functions of the LAI4D widget but it is not a tutorial. It is indicated for people willing to make a deeper usage of the tool. The following topics are covered by the reference manual:
Find more interesting tutorials and articles in the community.
The estimation of hidden faces has been improved.
The brightness calculation scheme has been upgraded including a new factor "focus reflection factor" indicating the proportion of reflected directional light that is focused instead of diffuse.
A "copy to clipboard" button has been included within the information elements of the commands: "Point coordinates", "Measure distance", "Measure angle", "Measure polygon", "Physic properties".
The command "Create extruded surface" has been replaced by the command "Create pipe". An extruded surface can be created entering a straight segment as guideline of the pipe.
Other minor improvements.
General terms and conditions.
Generative art is a way to express the beauty through computational
creativity. Generative algorithms are able to create awesome and
beautiful artworks. However those algorithms usually depend on a high
number of parameters which meanings are not easy to interpret.
The GENEVL configurator allows the user to explore all the universe of parameter combinations handling a simple UI control and regardless of the algorithm complexity. Additionally it includes several functions for saving and sharing the explored configurations as well as utilities for obtaining the generated models. Thanks to the project GENEVL many different persons can enjoy the same artwork but having a completely customizable experience.
GENEVL configurator is an experimental
tool expressly conceived to make any
person capable of managing complex
parametric models which judgement mainly
depends on aesthetic criteria.
This tool must not be confused with
conventional web configurators whose
goal is to modify some characteristics
(typically color or material) of predefined parts of a 3D model.
The GENEVL configurator works over a generative algorithm. This kind of algorithms are commonly used in the field of generative art. The algorithm takes a set of parameters as argument and processes them according to the mathematical instructions composing it. The result is normally a 3D model defined by its geometry and colors, but the truth is that it can generate videos, 2D pictures, musical melodies or any other thing definable through information.
Its user interface has been simplified to the most. Apart from the basic controls necessary to handle the camera configuration, the UI only shows a dial-like control:
It is the evolution control bar and permits the user to control the evolution speed of the model (that is an involution when negative). The tool evolves the model automatically modifying the parametric configuration according to the rules of the internal engine. The evolution history is saved in memory so the user can return back to a previous stage at any moment.
The tool offers other interesting utilities:
It is important to understand the difference between the GENEVL configurator and a conventional design tool. Although the result of a generative algorithm is a 3D shape with vertices, faces and colors, you can't expect to directly alter the coordinates of specific vertices nor to modify the orientation of specific faces nor to edit the components of specific colors as if you were working with a CAD application. You cannot even expect to handle something similar to a B-rep. The only thing you can modify are the variables (parameters) consumed by the mathematical equations of the generative algorithm. And to guess the final effects in geometry or colors of such variations can be really difficult for a person due to the deviousness of those equations. The singular capability of exploring that universe of parameter combinations is what makes the experience of using the GENEVL configurator so different from that of using a design tool, and is the reason why it is named configurator instead of designer.
Probabilistic evolutionary generation (PEG).
The PEG technology allows the configuration of highly parametrized models
through one unique numerical input. While the model to configure can
depend on a huge number of parameters, both continuous and discrete, the
user interface only shows a simple control like a slider or a dial.
Internal AI engine
The PEG engine automatically generates evolutionary paths for the parametric model basing its decisions on probabilities which are initially set to default values. The user continuously communicates whether he likes or not the current evolution stage (mutation) of the model through the single UI control that represents the evolution speed. If that entered speed is negative then the PEG engine involves the model configuration instead of evolving it. The user's feedback allows the reinforce learning mechanism of the PEG engine to recalibrate the decision probabilities with the goal of accelerating the convergence. Convergence is reached when the user is satisfied with the model configuration and no more evolution is necessary. Improving convergence is the main research vector of the project.
This probabilistic approach makes the PEG engine tolerant to user errors. The user input will provoke one evolutionary path to become more or less likely to happen but the engine will never absolutely discard a parametric configuration. The automatic evolution can get to show interesting and unexpected mutations that would have been ignored in the case the user was responsible for manually set the model configuration. Furthermore the manual configuration of parameters could be unpractical when their individual or combined effects are difficult to interpret, which is a common issue in complex generative algorithms even for their authors.
The minimalist and easy to handle interface leads to an entertaining user experience regardless of the model complexity. This technology really opens the door to the concept of custom art since the user is allowed not only to modify a few evident properties of model parts like in conventional online configurators, but he also can customize models involving sophisticated mathematical algorithms with immediate results.
During the research phase other UI options has been tested. The challenge was how to easily and effectively manage an undefined amount of parameters (typically dozens) whose functions within the model are far from being clear. The "easily" requirement implied to handle the whole set of parameters from an standard input device like a mouse or a track-ball. These devices allow to generate a two-parameter input normally intended for defining an X-Y graphic input. After several tests and taking into account that users actually judge what they see with a like-dislike decision, the input was reduced to a single number through a dial-like control. This approach has proven to be effective and avoids the user confusion when handling an X-Y input working on a geometric model because he intuitively expects some kind of X-Y effect.
Obviously the GENEVL configurator can work over any generative algorithm. But the complexity of that algorithm must be carefully analyzed since the target hardware has a limited processing power and the user cannot judge in real time a very high number of aesthetic details. Having selected a fancy snail shell as the first algorithm to work with responds to a series of reasons. Probably the most important reason is the fact that with a snail algorithm it is relatively easy to obtain a beautiful shape. Other important reason is that it offers a good beauty-complexity balance for a non-abstract geometry. Although an abstract geometry can also be beautiful it is more probable to find beauty in a recognizable shape. To implement a generative algorithm for a non-abstract geometry was more challenging but has offered the possibility of testing the tool with a model of near 40 parameters. Furthermore an snail shell is an open surface that needs a non-trivial post-processing before being sent to 3D-printing what constituted another relevant exercise for the GENEVL project.
LAI4D is working on the development of more algorithms to enrich the user experience. Nevertheless integrating new generative algorithms is a work of software craftsmanship not supported by any kind of API or industrial standard due to the characteristics of the underlying technology.
The operation of this tool evolving a complex model in real time is possible thanks to the generalized availability of GPU powered hardware. Fortunately this hardware is also accessible from a web browser through WebGL so the GENEVL configurator could finally be implemented as a web application running on any device. This execution environment highly conditions the way generative algorithms are structured constituting itself a programming challenge. The performance achieved by the tool in mean computers equipped with low power GPUs is reasonable. But this also depends on the requirements of the generative algorithm. In the future, using more powerful hardware, this technology could be exploited for engineering or architectural purposes involving real time evaluation of physical constrains, and not only for artistic purposes.
As an experimental AI tool, the accumulated training coming from the user interaction not only improves the performance of the application thanks to its learning capabilities but also constitutes a valuable scientific data about the user behavior (coherence, contradiction, attention, aesthetic judgment, curiosity...) that can be exploited for research.
LINKS TO OTHER RESOURCESThe concept of generating things by computationally emulating the process of biological evolution has been present in art and science almost since the inception of computers. And the concept of interactive art is neither new. Unfortunately many of the online projects conceived to explore those technologies have been apparently discontinued or abandoned. Here are some interesting references related to the field of generative art:
GENEVL Configurator help: Document explaining the basics about the functionality of the configurator tool.
Find more interesting tutorials and articles in the community.
User interface styling improved.
Now the "Share model" function also shares a screenshot.
Convergence of the engine improved.
By using this software tool you renounce to any exclusive right over any derived work resulting from the usage of the tool which will be the property of the author of the original work. The exploitation of any derived work resulting from the usage of the tool is subject to the obtaining of a license from the author of the original work.
You are free to publish snapshots of the derived works with the corresponding attribution.
Unless otherwise specified, the author of the original work and owner of all its associated rights is Lai4d Systems.
See also the General terms and conditions.
The community is a space intended for
cooperation between LAI4D users and developers. All users participating
in the community are
helping the project in one way or another. To answer questions,
to report a bug, to write a tutorial, to share a useful algorithmic
entity or to discuss an enhancement proposal, all are welcome
contributions. After being evaluated by the LAI4D development team, this
feedback will become into software and documentation improvements. By
participating in this community you also accept the terms and conditions
expressed at the bottom of this page.
Remember that you can also contact to the development team at [email protected]. If you want to contribute with tutorials or interesting articles send us an email.
LAI4D's board at MAKEPROJECTS.com
LAI4D's blog at Medium
LAI4D's YouTube channel
LAI4D in the media:
|Legal note Contact License General terms and conditions ↓|
The Laboratory of Artificial Intelligence for Design is a not-for-profit initiative aimed to experiment the research results of Lai4d Systems in the field of AI applied to engineering.
LAI4D, Iquix, Gosyx and GENEVL are trademarks or registered trademarks of Juan Andrés Hurtado Baeza.
This website does not store information in the user's web browser.
For administrative inquiries regarding LAI4D, please contact Lai4d Systems.
LAI4D, Iquix, Gosyx, GENEVL, this website and accompanying documentation constitute a software system (the "Software") subject to the following license agreement. By using this Software, you accept these general terms as well as the particular terms corresponding to the particular Software element you use. The particular terms will prevail over the general terms where applicable. If you do not accept them, do not use this Software:
The Software can be used in any environment, including but not necessarily limited to: personal, academic, commercial, government, business, non-profit, and for-profit. The Software is free for use with the exception of those functions expressly marked as having associated a cost or charge.
You shall not sell, rent, lease or sublicense the Software or any part thereof. You shall not modify, adapt, or translate the Software. If you create derivative works based upon the Software or use the Software as a component of other system, provided the Software is not modified, you shall not alter its appearance neither hide its presence or any of its features. You shall not reverse engineer, decompile, deobfuscate, disassemble, or otherwise attempt to discover the source code of the Software. You shall not alter or remove any copyright or other proprietary notice that appears on or in the Software.
The Software incorporates an Internet-based service named COMMUNITY providing a space for cooperation between users and developers. The Software incorporates an Internet-based service providing free online capabilities for file storage and retrieval. The content may be submitted by anonymous users and it is not offered any kind of warranty over it. The submitted content will be publicly available. The integrity or accessibility of the content cannot be indefinitely warranted. The person submitting the content shall be the author or shall have the necessary permissions to submit it. The author of the submitted content renounces to any exclusive right over it that becomes of public domain.
You shall not use the Software, including Internet-based services, for illegal or offensive purposes.
The functions of the Software, including Internet-bases services, may be changed or canceled at any time without previous notice.
If any part of this agreement is found void and unenforceable, it will not affect the validity of the balance of this agreement, which shall remain valid and enforceable according to its terms.
This legal notice shall be included or linked in all copies of the Software.
THE SOFTWARE AND OTHER INFORMATION IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.