Quantum Brush is a multi-window graphical software with OpenJDK + Processing (Java) + Python combination. Using a creative framework such as Proessing is useful here to improve Java's graphical interaction on the image(s) (Canvas). However, using Java's old-school GUI design and making a complicated backend system between Java and Python are not ideal for modern graphical software, especially nowadays good design language and good window organisation is key for various sizes of computer screen and for cross-platform.
For example, Quantum Brush now has three different windows. (Two for main, one for occasional.) The detail of UI components can be seen under here. You can see the complicated UI organisation here.
Control Panel, Canvas and Stroke Manager. Ideally, in this case, Canvas and Control Panel should be sit witnin one big window which is responsive to user's computer screen, and Stroke Manager can be opened up separately or underneath the main interface, which would be still within the one big main window. However, because of a constraint from Processing (Java)'s void setup() + void loop() structure, it's difficult to combine the canvas area (where void loop() is constantly referencing) and the areas (Control Panel and Stroke Manager) which are governed by Java's SwingX library.
Currently, the communication between Python backend and Java happens through JSON document, which is not ideal for graphical execution. Thus, we were reviewing using .svg data to improve this pipeline, and it's up to you who brings this feature by .svg or by other solutions.
You can witness that the code is making a JSON document based on user parameters and a stroke which is created from the brush paths.
So far, Quantum Brush uses the simple, default Java's SwingX style design language, which is not ideal for modern desktop applications. Thus, we're thinking of improving the app's design system, aligns with the good communication from software to user and looks great on Windows, Mac and Linux. (Right now, it seems like the app is from early 2010s 🥲) Thus, contribution using Figma or Sketch, etc. and making a demo of the improved UI/UX using Prototyping tool on Figma or ProtoPie, etc.
And if you are a team of designers and coders, you are more than welcomed to make the fundamentals of newly-designed Quantum Brush app. While designers are working for the task above, developers can bring new design to the real life. Any technical stak is welcomed, but ideally we were thinking about using Electron + React, OR C/C++ with openFramework like other graphical softwares. However, it's up to your decision.
All the source codes for the app can be found under the source branch, which is here.
Quantum Brush is a multi-window graphical software with
OpenJDK+Processing (Java)+Pythoncombination. Using a creative framework such as Proessing is useful here to improve Java's graphical interaction on the image(s) (Canvas). However, using Java's old-school GUI design and making a complicated backend system between Java and Python are not ideal for modern graphical software, especially nowadays good design language and good window organisation is key for various sizes of computer screen and for cross-platform.For example, Quantum Brush now has three different windows. (Two for main, one for occasional.) The detail of UI components can be seen under here. You can see the complicated UI organisation here.
QuantumBrush/src/UIManager.java
Line 9 in 4ca31e5
Control Panel, Canvas and Stroke Manager. Ideally, in this case, Canvas and Control Panel should be sit witnin one big window which is responsive to user's computer screen, and Stroke Manager can be opened up separately or underneath the main interface, which would be still within the one big main window. However, because of a constraint from Processing (Java)'s
void setup()+void loop()structure, it's difficult to combine the canvas area (wherevoid loop()is constantly referencing) and the areas (Control Panel and Stroke Manager) which are governed by Java'sSwingXlibrary.Currently, the communication between Python backend and Java happens through JSON document, which is not ideal for graphical execution. Thus, we were reviewing using
.svgdata to improve this pipeline, and it's up to you who brings this feature by.svgor by other solutions.You can witness that the code is making a JSON document based on user parameters and a stroke which is created from the brush paths.
QuantumBrush/src/FileManager.java
Line 43 in 4ca31e5
.svgfile system.So far, Quantum Brush uses the simple, default Java's
SwingXstyle design language, which is not ideal for modern desktop applications. Thus, we're thinking of improving the app's design system, aligns with the good communication from software to user and looks great on Windows, Mac and Linux. (Right now, it seems like the app is from early 2010s 🥲) Thus, contribution using Figma or Sketch, etc. and making a demo of the improved UI/UX using Prototyping tool on Figma or ProtoPie, etc.And if you are a team of designers and coders, you are more than welcomed to make the fundamentals of newly-designed Quantum Brush app. While designers are working for the task above, developers can bring new design to the real life. Any technical stak is welcomed, but ideally we were thinking about using
Electron+React, ORC/C++withopenFrameworklike other graphical softwares. However, it's up to your decision.Electron. Implementation of basic feature is needed, such as creating a new project, importing an image, draw lines and dots on the canvas and save it for execution of quantum brush!All the source codes for the app can be found under the
sourcebranch, which is here.