NextSurface is a software for creating interactive surfaces. NextSurface transforms any screen into a surface that people can simultaneously interact with, using hand gestures or pens, like on a physical whiteboard. NextSurface supports input devices such as Apple Trackpad or similar HID device, however, for a better user experience, we recommend a multi-touch device, such as frame overlays produced by PQLabs or ZaagTech, or our remote controller NextGesture on iPad.

NextSurface includes two applications for presentation and collaboration. The applications are based on NextSurface's proprietary toolkit for creating multi-touch and multi-user interfaces. The toolkit supports a natural interaction with visual elements and it supports gestures performed with multiple fingers. Common use cases of the applications are interactive meeting rooms, information kiosks for hotels or estate agencies, and digital whiteboards.

NextSurface provides a JavaScript API for creating custom applications on top of the proprietary toolkit. NextSurface's toolkit provides an abstraction layer which makes easy creating user interfaces and handling touch events and gestures. NextSurface is not a general purpose UI toolkit, but a programmable environment for building multi-user and multi-touch applications.

NextFractal is an application for creating amazing fractal images and other algorithmically generated images. Images are generated processing a script and some user provided parameters, depending on the selected grammar. NextFractal is currently able to interpret two grammars:

  • M which is a domain specific language for creating Fractals such as Mandelbrot Set or Julia and Fatou Sets.
  • CFDG which is a context-free grammar for creating geometric shapes using an iterative process.

NextFractal provides tools for exploring Fractals, browsing images, creating time-based and event-based animations, and exporting images and animations.

You don't need to learn the M language or the CFDG language to enjoy the examples provided with NextFractal. However we recommend to study those languages in order to create new images or modify the examples.

We have created a tutorial to help you learning the M language. The tutorial shows how to implement various techniques for generating orbits and computing colors.

Do you know you can control NextSurface from iPad?

NextGesture is a controller app which enables multiple people to interact simultaneously with the same instance of NextSurface from any iOS device.

Are you passionate about drawing or painting portraits?

NextPortrait helps artists to create portraits from their images in photos library.


Run MySQL in Docker Container

Docker changed my approach to software development for many aspects. One of them is how I maintain software dependencies on my developer's machine. I use Docker to install and configure my dependencies, usually required for testing my application.

Docker provides a repeatable process for creating an isolated environment which has the expected configuration. A very common use case is represented by installing a database, such as MySQL or PostgresSQL, creating schemas and users, and populating tables.

Docker helps in automating my process and it can be combined easily with CI/CD tools. We can easily run Docker as part of a Jenkins pipeline or we can run Docker with Apache Maven when building a Java application or any JVM based application.

Compile code with Docker

Every time I need to compile some code which I downloaded on the Internet, I have to spend a lot of time installing tools and libraries. Sometimes I need to cross-compile code or patch a library, and I need to configure some local environment which occupies space on my disk, but I can't throw away because I might need it again later.

What if I could easily and reliabily create the environment when I need?

Docker represents a versatile tool which can help to simplify and eliminate tedious operations such as preparing an environment for compiling code. This principle can be extended to any build process, and actually there are already companies such as CircleCI, which have adopted Docker for their CI/CD solution.