 Ok, češno, nekaj mi je Šanjo Nakhmitaks. Češno, nekaj mi je Šanjo Nakhmitaks. Nekaj mi je vsožito, da vzoutje vas taj projekt, je nekaj Pajton, je se zeljene. Zelo je pajton vseh. Nekaj je veliko pričočen, nekaj ti prejeliti digitalne začetje, in tako, da počutite, Vseč sem odličila aplikacije, kaj je zelo vseč. Vseč je Python editor na vrst, na vrst je vseč vseč, in je bundelja, kaj je jih jih jih jih jih jih jih jih jih jih jih Python. Arthak na slogan, naj pohodno bo za jemi regeti, as three words, x, y, z. The first one stands for code, like linear text. X, y is 2d, is the instant image, or pdf. And the third one, three dimensions like architecture or something like that. In, OK. I will first show some examples, and then maybe I will talk about some concepts more deeply. So, the first thing, OK, the library exposes basically three main classes. One is image for Rasta images. The second one is seen for 3D objects in light and materials. In druga je dokument, je to naj kompleks, zato sem izgleda však. Zato obček, dokument se izgleda na page in na page se izgleda na izgleda. In izgleda bude mnogo, ki je tekst, imeč in šepe. Zato sem izgleda, kako je však. kako je nekaj dobro. Zato je tega koordinacija in vse zelo smo početil koordinacija s smaljem in vse možemo vse tega. Zato je to početil. Zato je to početil, tačno je korek, tačno je korek, tačno je korek in struks, ni tukaj vse tega. Zato se vse tega vse tega vse tega. Prezivam šebs, ki je vzpečen v zelo studenju, vzpečen vzpečen vzpečen vzpečen. Pistim to na paja. To je nekaj neče, ki jste pravili, da je to vzpečen. Prvno, ki najno, ki se početil, je poskript, ki jste museli dobročiti grafik, vsežitev da je vsežit in se zelo. Vesežitev je nekaj, kaj je vsežit in je da se zelo vsežitev vsežit. Prejtvenčne. Prejtvenčne. To je več vsežitev. Vsežitev je demonstrativer na nekaj vsežit. kako je počkaj, kako je počkaj, kako je počkaj, počkaj, počkaj, bezier, kvadratik, kubik. I to je, kako je spet. In zelo, da je zelo, da pdf ne potrej vzelo kvadratik bezier. Zelo, da je počkaj, da je počkaj, kvadratik bezier, Zato musim pošličiti kvadratik in kubik kvadratik, zato sem da se pošličiti na pdf. Tukaj, tukaj izgleda je izgleda. Tukaj je mnije kolor, mnije dve kolor spesje, kjer je bounce, greječka, RGB, CMYK, spot color, device in overprint. Za njiha taj je taj jeber trpi nekaj renovičenoring, začal ninič se zelo menebri.醫ne trpi nekaj regljučenoring,anka. RGB, CMYK and spot color with CMYK fallback and again, I create a shape factory, which has no stroke. It is filled of random color, and I placed direct angle on a page. The next thing are fonts. Vseh zelo bi bilo 3 kajne vsefne tajni. Protoj ne je tako tako, če je to v več pomečna, a tajno je tako opušna in tajno je zelo kubične in kvadratične. To je cff, tudi adobej, vsefno opušne in mikrosov, ne o Apple vsefno opušne. Mokren sem očetn ... ... kaj je ta stajg, kaj je zelo možno v kogne. To je načinj, načinj komand, kaj je očetn, da se vse objevaj v tem, in tudi se zelo v tudi nekaj tega. To je prober neko mozi bilo. Tatsgame izsača, da je hodno, da leče tala, četko, da je nafundu dolači tega, veči kot začne otvariti, začne odpane, je to vso oba, da je prišlo masako kompleks, sem kontakl van učin, nekaj prezident, ne bo naprej ta je vsebar, je kompost, tekst je kompost do petrkov, a petrkov je kompost do petrkov. V tej strane jaz sem jaz nesunjela kratiljev, kratiljev, na kratiljev, in jaz nesunjela, na kratiljev, ki jaz nesunjela, in v mnimi dotrbeni petrkov, da posta tudi do petrkov in tudi posta tega. In izgledajte, da je to, da je tukaj. Zgledajte. Zgledajte, da je tukaj. Ako ga je izgledajte, da je to, da je tukaj. as an SVG, so basiko this is SVG, and this example shows that it also works with kerning, it is the same two fonts, but I removed kerning of the first one, so you can see this one is not pretty and this is pretty. Another example with fonts is that when you have a text, you can also chain it, okay, when you have a text, you can put it inside a container, like text frame, and you can chain these text frames, so this is randomly generates, it reads a text from hard drive and at random it chooses font size and how many forms it should flow into. Then one more example with text, okay, and as you can see it's vector graphic, and another example is also with text, and basiko, I draw here all the available outlines or glyphs of a font and put it on a page, but this time I created, what I'm showing you is one document and now I created another document, I created one page there and put every accessible character there and rasterized the page of another document and put it as an image into the first document, so now this will be more clear, so what I try to show is that a page can be exported as SVG, but also as an image, so it rasterizes the content. This one I uncommented because it's a little bit slow. This is demonstration for 3D scene. This code here is very simple OBJ, a parser, and here you define certain materials, lights and some geometry, and then it renders to an image, and when it's done, it places the result on a page. The thing is that, probably to comment, first, this is with hate, and how many anti-aliasing samples it should use, and when it produces this high dynamic range image, then it has to be tone mapped, so it can be shown on a monitor, stand for bunny. Another thing which it can do is, it works with images, so I open one image and apply different effects to it, or some manipulations, the top left is resizing, it supports for nearest neighborhood method, Bicubic and Lancash, or the one on the right, it is simple blur, detering and invert and flip. Just very simple operations over raster data. Next example is, the library also has support for basic charting, and I need it for a home page of this project. I wanted to show how the classes interact with each other, so I draw a tree structure out of it, so it is this, and this is something I'm a little bit hesitating to develop further, because there is great opportunity to have many charting functions, for instance, for trees, for graphs, for bar charts and so on, but I would rather have the basic functionality in place, and then I can play with different chartings. And last one is another kind of chart, this time it displays basically 2 or 3D data. Ok, I have to, like this. It was for an article I wrote about light breaking, where I compare different algorithms for light breaking, and this is the result of how an algorithm behaves in terms of how many words there are online and how many words there are in total. Ok, that's it. These were the examples, and by this presentation or this meeting I wanted to release version 0.2, currently the version is 0.1, so it's very early, but I wanted to release new version, but I didn't manage to. The things to expect, I don't want to generally talk about what features I would like to have, but for 0.2 there will be for sure, basically when you have open type, there are tables which define certain data structures inside font, and as it happens for kerning there are two tables, and I support only one, and I promise to one guy that I will implement also another table, so I have to finish that. Ok, very short about what I actually trying to do or what is the library good for, so one thing is that obviously it can be used for layouts which can be automated, so you have certain design manual, and then you only get new data and you want to preserve that manual, that layout, and export PDF, so that one thing, but I'm personally more interested in another thing, and that's discovering new ways of how to design, because I feel this is very different, in my program it's very different than to sit behind more traditional application, and what I tried the library to be, I tried very hard, the library is very simple to use, so I guess it's time for questions. One more thing, and I can of course export the output, so this is basically PDF. Ok, thanks. So any question? Yes. First of all this is really impressive work, this is really exciting, and I'm wondering technical question, are the dependencies for drawing graphics, PDF typography, what are the libraries that you're using? None. I'm just really curious. None, it's all there. Wow. It has its own rasterizer, its own parser for open type, its own export and import of JPEGs, CMYK JPEGs, PNG, everything's Python, everything's self-contained. This is really good stuff. Yes, thank you. Any other question? Is there a question? Yeah, you mentioned the algorithm for line breaking. Yes. I wondered why you felt you needed to generate something new for that. Can you repeat it? Sorry, you mentioned an algorithm for line breaks, and I wondered why you felt you needed to make something special for that, or new. I'm not quite sure. I understood the question, but I'm not sure if I follow the intent. Basically, when you have text which doesn't fit online, you have to line break it, and there is one way, which is very simple, and you put words online, and then when it doesn't fit, you put it on the next line, and so on. So, this produces sometimes, right margin. And the first one, who tackled this problem, was Knuth in Tech, and his algorithm, I tried to read the algorithm, but it's a bit over my head. But it turns out, the basic idea is not that complicated. Basically, it's dynamic programming, which tries many different options, and returns the one with the best score or something. And so, what I tried is, so why first, why I tried to invent new, basically, as the library allows you to work with text, I needed line breaking, so I tried to have nice line breaking. Can you go there? Yes, but I don't... I can show it to you. Yes, I have it. Maybe later, I cannot find it, but did I answer your questions, because no, yes, no. This is no, and this is yes, OK. Or others can look for it. And show it afterwards. Sure. Do an explanation, and show it afterwards. At this side, this XYZ, I wrote a whole article about maybe six algorithms for line breaking, and there is also reasoning why I picked certain algorithm. But basically, the one greedy no one uses except for word, I think, and then the next five are only variations of the same idea with different time complexities. And I picked the one which is not the fastest, but for text which is normal use is very fast and also is very simple, because there are faster algorithms, but slightly more complex. We can talk about it later. OK. I think we have to go to the next talk. Thank you again. Thank you very much.