A Work of Desktop Art
Update: Read the update from 2020 about our next iteration of code generated art: the new version of the graphics generator using a neural network to create both animated and static graphics.
There is a certain intangible beauty and satisfaction to be gained when the worlds of art and science come together to create a cataclysm of functional form with a mastery of technical skills.
For many developers, coding is a form of creation and the code is their art.
Our code-generated art is a testament to this.
We’ve continually been developing the generator to make art from code, which we use internally to combine these two worlds and create beauty by striking the perfect balance between the experimentation of art and the cognizance of science. This may not be news to you. After all, we’ve covered the improvements we have been making to this generator over the years, from its first inception in 2017 to the later developments brought out in 2018.
Now by the end of 2019, we are continuing to expand on the unlimited potential of the technology.
We are using our code-generated art to create original artwork for all our splash screens, banners, and release graphics. Each product will have its own unique design to bring pleasing aesthetics to your desktop.
This version of the graphics generator creates both animated and static graphics based on the computational model of metaballs, which predict how drops of fluid (or elastic spheres) would interfere with each other in a vacuum.
The beautiful premade JetBrains screensavers and desktop wallpapers now have a new home on our website. You can get to them easily on the Desktop Art page of the JetBrains website.
If you are after something a little more unique, our generator can produce art that is absolutely exclusive to you. Create a wallpaper that expresses your individuality, for a desktop that is truly yours. Simply visit the Desktop Art page on our website or go to code2art.jetbrains.com directly.
Here are just some examples of what you can create with the help of our generator.
Myopia and biomorphs
Not only can you use the wallpapers and screensavers you love the most for your desktop, but they can also become a custom background for your JetBrains IDE. Check out this guide for step-by-step instructions.
The technical details
It is done using Elm Architecture that is similar to one that is used for nested components. Each layer has its Model/Update/View cycle, is in charge of importing and exporting itself, and can also receive global events, such as "I feel lucky". In the case of the "I feel lucky" event, the layer itself generates a random version of its model.
From a technical standpoint, Elm is a great choice for generating the graphics:
- It helps us describe the layers model as well as any complex structures using Algebraic Data Types in their purest form, and it’s the easiest and most natural way for us to do so.
- This functional way of programming is super-friendly with generative algorithms – it’s easy to separate them into independent functions and reuse them with any type of input.
- Together, the Algebraic Data Types and functionality help us organize the code in a modular way, where it’s easy to unplug or plug in just about anything.
- The code in Elm is much more readable (when you take some time to get used to the new syntax) than code in most other languages – even Haskell code, which it borrows most of its ideas from.
- Elm-WebGL package is not just a wrapper. Rather it’s a friendly API that offers useful and easy ways to create a scene, check the types of the data you provide to the shaders, load textures in an Elm way, and many other useful things.
gui.jsas the current GUI and still keep and operate the model on the Elm side.
There are some downsides of writing in Elm for us too, however:
Ongoing changes are always being added to the platform. The application source code, as always, is available on GitHub under the Creative Commons license.
Enjoy playing with the generator and don’t forget to share your results with others on social media and tag JetBrains. We would love to see your art!
The Drive to Develop
Subscribe to Blog updates
JetBrains CEO Transition
We’re pleased to announce a new chapter at JetBrains: Kirill Skrygan takes on the role of CEO. As we embrace innovation in developer tooling, we remain committed to delivering excellence to our customers and partners and are excited to continue building the future of developer technology together.
Nx Champions Join the JetBrains Developer Recognition Program
Nx Champions join the JetBrains Developer Recognition Program.
Ready For an Update? The 2023.3 Versions of JetBrains Coding Tools Are Out!
The last release of the year brings a plethora of new features to empower you with an even more exceptional developer experience. You can find the summaries of JetBrains desktop tool updates below and dive deeper for a more detailed look. Introducing JetBrains AI Besides yourself, who knows yo…
Introducing JetBrains AI and the In-IDE AI Assistant
With the rise of generative AI and large language models (LLMs) this year, the landscape of not just the development industry but the creative industry as a whole has begun a transformation. Using this new technology to augment JetBrains tools was a no-brainer for us, and we see it as a logical n…