(MegaGrant) Iliad : Intelligent Layered Imaging Architecture for Drawing.

Another video about ILIAD, recorded by a nice Russian guy during the Unreal Academy in London :

Here is a FAQ that answers all questions we had during the livestream. Feel free to join our forum%20%20%5Bcolor=#40BFFF%5D%5Bb%5DCan%20we%20use%20ILIAD%20in%20runtime%20?%5B/b%5D%5B/color%5D%20Yup%20!%20%20%5Bcolor=#40BFFF%5D%5Bb%5DCan%20we%20paint%20seamlessly%20?%5B/b%5D%5B/color%5D%20Yup,%20thanks%20to%20our%20Odyssey%20brushes%20that%20use%20Bluperint.%20By%20the%20way,%20there%20is%20a%20seamless%20brush%20included%20by%20default.%20%20%5Bcolor=#40BFFF%5D%5Bb%5DAre%20there%20transform%20tools%20?%5B/b%5D%5B/color%5D%20Not%20yet,%20work-in-progress.%20%20%5Bcolor=#40BFFF%5D%5Bb%5DCan%20we%20use%20mask%20/%20stencils%20?%5B/b%5D%5B/color%5D%20Not%20yet,%20work-in-progress.%20%20%5Bcolor=#40BFFF%5D%5Bb%5DAre%20there%20filters%20such%20as%20noise%20?%5B/b%5D%5B/color%5D%20Not%20yet,%20work-in-progress.%20%20%5Bcolor=#40BFFF%5D%5Bb%5DCan%20we%20create%20Layer%20groups%20/%20folders%20?%5B/b%5D%5B/color%5D%20Not%20yet,%20work-in-progress.%20%20%5Bcolor=#40BFFF%5D%5Bb%5DWhat%20is%20Odyssey%20release%20date%20?%5B/b%5D%5B/color%5D%20Someday…%20%F0%9F%A4%93%20%20Subscribe%20our%20forums%20if%20you%20have%20other%20questions%20!%20https://praxinos.coop/forum/viewforum.php?f=15) if you have other questions !

How much is ILIAD ?
The beta version is free !

Is the Beta version limited?
The beta version can be used by anyone, as it will be accessible on the Marketplace :slight_smile:

Is ILIAD Open-source ?
A magician never reveals his tricks !
(so, the answer is : nope)

In the end, we decided to make sources available. This way, people who use a custom version of Unreal Engine can compile ILIAD, and people who are willing to improve ILIAD are welcome to share their work with Praxinos team to make improvements for the whole community.

**Is ILIAD vector-based ? **
We’ve chosen the bitmap side. However, we consider adding vector-based tools in the future.

What is the Min/Max resolution ?
First, we say definition, not resolution. Second, the minimum size is 11 pixel and the maximum size is the same as Unreal Engine : 81968196 pixels

Does ILIAD work with a mouse or a tablet ?
Both, but we strongly advise you to use a graphic tablet (Wacom, Huion, etc). However, keep in mind that ILIAD use Ink API at the moment, not Wintab API yet (work-in-progress).

**Is ILIAD pressure-sensitive ? **
Yes, and many other connections are possible : acceleration, altitude, azimuth, angle (normal, vector, tangent), distance along stroke, jolt, pitch, roll, yaw, speed and twist.

What type of assets can be edited with ILIAD ?
Any kind of 2D textures (diffuse, normal, specular, etc.)

Are Photoshop brushes compatible with ILIAD ?
Not at all : the engine used to build brushes is totally different. Odyssey brushes are Blueprint-based.

What is the Bit depth ?
You can create 8-bit 2D textures and you can edit 8-bit, 16-bit and 32-bit textures.

Can we paint directly in the viewport ?
Not yet.

Can we animate ?
Well… you can do it if you combine ILIAD with Flipbook. But we must be honest here : this is not the best way to animate. Be patient, we are building dedicated tools to do this :slight_smile:

Can we use ILIAD in runtime ?
Yup !

Can we paint seamlessly ?
Yup, thanks to our Odyssey brushes that use Bluperint. By the way, there is a seamless brush included by default.

Are there transform tools ?
Not yet, work-in-progress.

Can we use mask / stencils ?
Not yet, work-in-progress.

Are there filters such as noise ?
Not yet, work-in-progress.

Can we create Layer groups / folders ?
Not yet, work-in-progress.

What is Odyssey release date ?
Someday…

Looks amazing! Keep up the good work :slight_smile:

Thank you very much for your message !

We are still working hard to release the beta version this month. Stay tuned !

Hi everyone !

We know, ILIAD is still unavailable on Unreal Engine Marketplace. We submitted it yesterday, but there are still a few things to review. Thank you for your patience. Here is a little teasing of the Marketplace page with ILIAD : https://twitter.com/praxinos/status/1204378403857747968/photo/1
Stay tuned !

ILIAD is finally available on the Marketplace !
bit.ly/2Z3yMN4

Announcement (crazy) video :

Can the brush BP editor get the name of the active layer? So you could have different brush settings per-brush-per-layer…

Hey Tomofnz ! The idea is great (I mean it !), but it won’t be feasible at the moment. It would require the layer to be a unique asset with an ID to make a brush usable on that single layer.

BTW, speaking of layers, keep in mind they are automatically merged after you saved the texture. The only way to keep layers is to extract them (“File > Export layer as Textures”).

Hi, just got beta 0.1 installed and… can’t really paint a thing. So i opened up the OdysseyBrush and the’re a lonely node Event On Step… Don’t think it’s the way the brush should look like, so i wonder where are the rest of the wires and nodes gone?.. Any help would be greatly appreciated.

All right…now I got it - there is no default brush set for ILIAD included in this beta. We have to make it as a blueprint in order to draw. OK, so i used this video to make a simple stamp brush like this:

and it worked out kinda OK…but there are some issues:

The first one is about texture stamp sample.
For some reason, I wasn’t able to make brush to draw with the texture mask. All I got is the basic squre brush instead.

  • what type of a texture file we should use for the stamp sample?
  • image size recommended?
  • alpha channel or mask?
  • can you provide a sample here for us?

Another issue is about stylus pressure functions that didn’t work out for me:

  • pressure controlling the opacity (flow)
  • pressure controlling the brush size

Not sure if this matters but just in case - I have Use Windows Ink option disabled for my Wacom tablet.

And the last one to mention is the **speed of brush following the **actual stylus movement. It is literally trying to chase the pen if you get a bit faster than slow. I wonder if this is somehow related to my box (i hope not) but still, it is worth to mention that critical thing for a drawing software.

A bug noticed: sometimes undo lives a marks at the lower part of the canvas

Best, Alex

Hi A.Borzykh,

Thanks for trying the plugin, I’m going to help you as best as I can.

As stated in the marketplace page :

That will help you to figure out how to create your own brushes. If you encounter a problem with any of those, I will answer you. :slight_smile:
You can also watch the livestream if not done already : https://youtu.be/GDgUe7UGqNo?t=525


Now regarding the problems you pointed :

The “fill preserve alpha” node in your graph turns everything into red. Can you show me the details of the image you are using as stamp, especially its format and compression settings ?

Any texture2D asset will do the job, but the stamp(s) you are using should have the same format as the texture you are editing with iliad (RGB, 8bit, 16bit, etc).

It’s really depending on your computer CPU as everything is heavily multithreaded. Can you tell more more about your config ? Do you mean the size of the stamp or the size of the edited image ?

Iliad should be able to manage alpha channel on almost any image.

It’s right there : https://my.pcloud.com/publink/show?c…7HKiSIVHsqOLmV

First, you will get al the required informations here about Windows Ink and** Wintab** : How to properly setup your tablet with ILIAD

Then about pressure, you can use those nodes :

Hmmm, we have fixed an “undo” related bug recently, I will check on our github if it was push in this beta version, then come back to you. If not it will be in the next update in January.
Does it happen everytime you draw or maybe if a stroke was not finished ?

For sure, speed matters when someone draws. I will cover in my next posts the “cache” option located in some nodes (this should be done during the week-end), once mastered they will increase the speed of your tools.

cache.png

is Praxinos going to keep following open source path?
if so than did you push the source into GitHub for PUBLIC ACCESS ?

Hi, Fabrice !

Man… what a shame I missed marketplace notes about the brushes. I was totally blown away with the release, so excited to try it out asap so I discarded the safety belt of the release notes in first place ((

Thank you so mush for such a detailed reply! I will now go ahaed and download the example project to test those brushes and get back to you if i get into any torubles (again).

Best regards!

Update: just checked your demo project and… man, this is awesome! All the brushes works absulutely fantastic! Pressure is also working nicely. Truly amazed by the brush responce to the pen speed as well.

And as the basic functions test went great, I immediately think to myself - ok, that’s really cool but how about rizing the functionality with the classic and well-known hotkeys and sub-tools? I mean, P for panning is OK but spacebar would be more intuitive.

Anyway, thanks a lot for this beta and we’re really exited to see it’s next incarnatoin!

Best regards!

Hi A.Borzykh,

You are welcome ! At the moment the brush examples are indeed outside of the plugin, because it’s easier for us to manage them in this way.
We can separate the C++ development from the Blueprints so if someone is asking for a specific brush, we just have to update the. zip file.
This might evolve in the future though.

By the way, if you keep having problems with the “undo”, let me know, especially if you can reproduce them : it’s a complex development so any help will be appreciated by our developpers.

Now about the speed of brush following the actual stylus movement. There are a couple of elements to take into account, I will try to cover them step by step :

1- the choice between “Billinear” or “Nearest Neighbour” resampling method.

  • Nearest Neighbour gives less quality but is less CPU resources consuming.
  • Billinear gives a much better quality but are more CPU intensive.
    (other interpolation methods do exists but are not implemented yet)

Interpolation_Methods13.jpg


The choice really depends on your purpose :
Are you drawing something rough with a very small brush ? sometimes nearest neighbour is the best choice to avoid blurry lines and keep a good reactivity of the tool.
Do you just need to rotate a photo once ? you have to use billinear.

2- the “cache” options :
The aim here is to choose when exactly the calculations are done :

  • Super will make most of the calculations as soon as the tool is selected and everything will be kept in memory (if you have enough RAM) until you change your tool.
  • State will make the calculations every time you change a parameter like the color, the size, the flow, etc.
  • **Stroke **will make thecalculations at the beginning of the stroke and will keep them in memory during the stroke duration only.
  • SubStroke will make the calculation at each information received by the mouse or stylus.
  • Step will make the calculations everytime iliad draws a stamp on the canvas. It could be very resource intensive as the line interpolation gives more informations than the ones received by the mouse or stylus.

so, for instance, I’m going to apply this to the “fill preserve alpha” node :

  • if you are sure that your tool will always keep the same color (let’s say blue) whenever you will use it, you can use the “Super” cache.
  • if you think that everytime you use the tool, you will manually change it’s color between each stroke by using the “Get Color” node, then “State” would be a better choice.
  • if you used some* “lerp” *node to create a gradient according to the stylus pressure, then it’s better to use the “substroke” or “step” cache option in the “fill preserve alpha” node, as the color will be recalculated on each step.

Hi Muzaheed,

When we started Praxinos about one year ago, we were quite reluctant to share any source code we would have written. We were all used to closed source software because it was our background.
But with the time we had a better understanding of the philosophy behind Unreal Engine 4. Especially recently when we realized that may people would have to recompile iliad because they are using their own modified version of Unreal Engine 4.
So we changed our mind and decided to provide the source code with the plugin.

We are now 8 people in the company and as some people are working remotely, we are going do our annual meeting early in January in order to discuss our next roadmap.
I can not speak for all the associates & employees, but I’m pretty confident that we will keep providing the sources with the plug-in release (I personnaly prefer not to use the “open source” terminology as many people from Epic Games are not confortable use it either : https://forums.unrealengine.com/comm…ot-open-source ; also we are under the marketplace EULA, not under GPL like Blender, GIMP, etc.).
That being said, if there is an unique know-how, this specific part would then be a precompiled library, but it shouldn’t prevent to adapt the plugin and remaining C++ files to a custom build of UE4.

Pushing our GitHub sources for public access will probably be discussed and debated at the same time. We will make sure to keep you informed.

hi there, I had an other question via PM which was : how to keep the best line quality with a responsive tool ?

The answer is :

  • try to limit the number of consecutive transforms to keep a good line quality.
  • use matrix compositions instead, they are less ressource intensive.

Ok, I have more answers now :slight_smile:

As expected :

  1. We will keep providing the sources with each plug-in release.
  2. If there is an unique know-how, this specific part would then be a precompiled library, but it won’t prevent you to adapt the product to your custom version of UE4.
  3. About the GitHub public access : since we are continually improving the code, there are changes every days. Also due to the size of the company, it might be hard to follow all the changes, pull requests, etc. that people would send us. So we will not do it at the moment. It’s still in our plans though. It’s just a matter of time and stability in the existing plugin code.