Yesterday marked the release of KIT OPS SYNTH, a culmination of an intensive 6 month creative endeavor with Chipp Walters from Altuit. This involved a lively back and forth of ideas, prototyping, development and testing. It drew upon our combined experience of the software lifecycle to create an incredibly unique 3D software application for the Blender platform.
The flooring was also developed by him.
SYNTH can now automatically generate a multitude of complex designs, with the ability to produce 100s overnight for final scrutiny and selection. And we've only just started.
The initial brief was quickly achieved: create the ability to take the 3D object packs from KIT OPS, called INSERTs, and randomly place them on other 3D object surfaces much like the work done on the Plating Generator.
Once completed, we talked about how we could place the objects more intelligently using design pattern theory to guide the placement whilst still allowing variation. This variation is driven by the user inputting a simple number, or 'seed value', and some other parameters under their control.
What are Design Patterns?
Similar to the concept in software engineering where tried and tested coding practices are identified for re-use in software design, Chipp outlined the theory of Design Patterns in the context of visual design. Design Patterns identify commonalities in creative works so that a designer can consistently produce aesthetically pleasing results:
Chipp's Design Patterns PDF formed the basis of the requirements
This became the key goal of SYNTH: create an automated tool that uses this intelligent design theory to control object placement. It would allow the user to set up the general design parameters such as objects and layouts, and then make the computer do the tedious work of positioning them by pressing one button - affectionally called DO IT.
After, the user can select the most ideal layouts and tweak the resulting objects further.
Gathering the Requirements
SYNTH evolved from early concept sketches about how Design Patterns can be applied in an automated way whilst still allowing the user a healthy degree of control:
Some of the many sketches that progressed SYNTH from early inception to final tool development.
The development process took flight by rapidly prototyping basic ideas, such as simple layouts and controls. From this Minimal Viable Product or MVP, we went on to produce a backlog of requirements we could pick though as we went, pivoting and tuning our ideas along the way.
Not only was the development team in the midst of a global pandemic, we were also in widely disparate locations - Texas and the UK. Most of our work was done over Discord and GitHub, where we were able to prioritize work, share screenshots, do animations and take video calls.
Whenever a new version was tested after picking off some of these backlog items, new ideas would spark which fueled further requirements. For instance, the idea of bulk processing multiple combinations of designs - later called SYNTH ITERATE, was introduced. It was also soon realized that SYNTH could create new KIT OPS objects that it could then use, in a sense feeding itself.
It was a delight to see the tool develop on a weekly basis in such an organic fashion. It blended the best of up front planning whilst building in flexibility along the way. A truly agile software development process.
Here are screenshots of how we progressed, from early development shots though to the final renders up until the release:
A sample of control panel variations automatically generated with SYNTH
In its first release, SYNTH now has a raft of capabilities, a testament to the development process:
Generate 100s of designs by changing just one number, the 'Master Seed'.
Use a 'Preview' mode to test object placement before application.
Use SYNTH ITERATE to batch process endless design possibilities.
Use layers of objects to manage and apply groups of objects in one go.
Arrange objects in rows, columns, grids, randomly, and around edges and borders.
Control the frequency and placement of objects with a variety of parameters.
Load and save your configurations in 'Recipes' to share with others or apply later.
SYNTH BATCH in action, generating 100s of design variations both subtle and significant
The journey won't end here. As new recipes are created and the user base grows, SYNTH's future is being charted. From more sophisticated selections to the introduction of even greater intelligence, there is definitely more to come.
Interested in a project with Configurate? Get in touch!