<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Leonardo</title>
	<atom:link href="http://www.xadesoftware.com/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.xadesoftware.com/blog</link>
	<description>Digital painting without lag</description>
	<lastBuildDate>Thu, 14 Jun 2012 21:59:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>May update</title>
		<link>http://www.xadesoftware.com/blog/archives/565</link>
		<comments>http://www.xadesoftware.com/blog/archives/565#comments</comments>
		<pubDate>Thu, 10 May 2012 23:00:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Chatter]]></category>
		<category><![CDATA[Leonardo]]></category>

		<guid isPermaLink="false">http://www.xadesoftware.com/blog/?p=565</guid>
		<description><![CDATA[It has been a while since the last update. Since then I have mostly worked on engine related stuff, but there have also been some improvements in the UI: Leonardo is getting closer and closer to the point where you can use it for real work, but there are still a few things missing: HUD-notifications (worked [...]]]></description>
			<content:encoded><![CDATA[<p>It has been a while since the last update. Since then I have mostly worked on engine related stuff, but there have also been some improvements in the UI:</p>
<p><a href="http://www.xadesoftware.com/blog/wp-content/uploads/2012/05/20120510-leonardo.png"><img class="aligncenter size-medium wp-image-566" title="20120510-leonardo" src="http://www.xadesoftware.com/blog/wp-content/uploads/2012/05/20120510-leonardo-300x275.png" alt="" width="300" height="275" /></a></p>
<p>Leonardo is getting closer and closer to the point where you can use it for real work, but there are still a few things missing:</p>
<ol>
<li>HUD-notifications (worked a long time ago but the code has decayed)</li>
<li>Custom brush-stamps as opposed to just ellipses.</li>
<li>Add, remove and rearrange brush-preset list.</li>
<li>Merging and changing Z-order of layers.</li>
<li>Better UI for layers.</li>
<li>Drag-n-drop from the export bar.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.xadesoftware.com/blog/archives/565/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review 3 (0.3.3)</title>
		<link>http://www.xadesoftware.com/blog/archives/539</link>
		<comments>http://www.xadesoftware.com/blog/archives/539#comments</comments>
		<pubDate>Tue, 13 Mar 2012 16:24:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Leonardo]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://www.xadesoftware.com/blog/?p=539</guid>
		<description><![CDATA[Two days ago, Max and I traveled to Gävle to conduct three user-tests on a couple of art school students. Here are my (Henning) observations: All user tests were conducted in full-screen mode which meant that no user could access the menu bar (this should be changed until next user test so that the menu [...]]]></description>
			<content:encoded><![CDATA[<p>Two days ago, Max and I traveled to Gävle to conduct three user-tests on a couple of art school students. Here are my (Henning) observations:</p>
<p>All user tests were conducted in full-screen mode which meant that no user could access the menu bar (this should be changed until next user test so that the menu bar &#8220;auto hides&#8221; in full-screen mode).</p>
<ol>
<li>All participants requested layers (we have layers but no UI for it, yet).</li>
<li>Although no participants explicitly said so, all of them would have enjoyed a brush-preview when they where adjusting the brush settings.</li>
<li>All of the participants instantly understood how to use the new color picker (wheel + triangle) and two of the participants loved it more then any other color picker they have ever used.</li>
<li>All participants seamed to like the new default eraser (its own context plus pressure sensitive diameter).</li>
<li>Two of the participants complained that the diameter slider was &#8220;too sensitive to get the exact diameter you want&#8221; and one of them requested being able to enter the diameter numerically from the keyboard (current diameter slider: 207 pixels wide, from 0.5 to 1500 with gamma 2.5).</li>
<li>Two of the participants did not know what the difference between Flow and Opacity is and could not figure it out even after some testing.</li>
<li>All of the participants used the Hardness parameter quite a lot.</li>
<li>Two of the participants requested being able to change the background color (currently possible, but only from the console).</li>
<li>Two of the participants asked if it would be possible to select and move a portion of the canvas (not currently possible).</li>
<li>Two of the participants tried to hit the Z key when they were told to zoom (doesn&#8217;t work).</li>
<li>One participant tried to &#8220;double click&#8221; the space-bar when told to snap the view (doesn&#8217;t work).</li>
<li>None of the participants noticed the &#8220;zoom box&#8221; at the lower left corner even after they were asked to zoom.</li>
<li>All participants seamed to like the rotate-canvas-feature and understood how to move the pivot point.</li>
<li>One of the participants asked &#8220;what is the current DPI?&#8221; (he knew he was at 100% zoom but he didn&#8217;t realize that&#8217;s how you are suppose to know the resolution you are at).</li>
<li>All of the participants loved the draw-straight-line feature but requested more advanced functionality. One of the participants (Kalle) requested being able to draw curves in a similar fashion and told us it&#8217;s very important to be able to offset the curve, without changing it, to draw repeating patterns.</li>
<li>Two of the participants requested being able to get some sort of &#8220;A4-paper reference&#8221; that just hovered above the canvas.</li>
<li>None of the participants realized that you could move around the color picker and brush settings window.</li>
<li>We forgot to test if the user realized that it was possible to pan around the canvas using the rulers.</li>
<li>One of the participants thought the F key would be more logical for flip-horizontal then the H key.</li>
</ol>
<div><a href="http://www.xadesoftware.com/blog/wp-content/uploads/2012/03/20120310-usertest2-1.png"><img class="aligncenter size-medium wp-image-545" title="20120310-usertest2-1" src="http://www.xadesoftware.com/blog/wp-content/uploads/2012/03/20120310-usertest2-1-300x300.png" alt="" width="300" height="300" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.xadesoftware.com/blog/archives/539/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review 2 (0.2.2)</title>
		<link>http://www.xadesoftware.com/blog/archives/526</link>
		<comments>http://www.xadesoftware.com/blog/archives/526#comments</comments>
		<pubDate>Sat, 18 Feb 2012 15:37:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Leonardo]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://www.xadesoftware.com/blog/?p=526</guid>
		<description><![CDATA[Two weeks ago we did a user test of Leonardo on Martin Piazzolla. These are the main things we came up with: Martin loved being able to rotate the canvas but didn&#8217;t like the shortcut Space+Shift. Martin usually rotated the canvas in a way that made it possible to move the hand in a back-and-forth (as opposed [...]]]></description>
			<content:encoded><![CDATA[<p>Two weeks ago we did a user test of Leonardo on Martin Piazzolla. These are the main things we came up with:</p>
<ol>
<li>Martin loved being able to rotate the canvas but didn&#8217;t like the shortcut Space+Shift. Martin usually rotated the canvas in a way that made it possible to move the hand in a back-and-forth (as opposed to left-right) direction while painting.</li>
<li>Martin loved the draw straight line tool and was able to find the shortcut himself (Shift).</li>
<li>Martin used the eraser a lot, both as a painting effect and a way of undoing mistakes. Martin likes to work with an eraser with a large diameter as well a smaller one.</li>
<li>Martins brush setting of choice for sketching was a hard round 24 pixel wide brush at 36% zoom with a light blue color.</li>
<li>Martin liked to outline his sketch with a hard black brush with a diameter that depends on pressure (not possible on the current version).</li>
<li>Martin requested the &#8220;multiply blending mode&#8221; between layers.</li>
</ol>
<div><a href="http://www.xadesoftware.com/blog/wp-content/uploads/2012/02/martin.jpg"><img class="aligncenter size-medium wp-image-527" title="martin" src="http://www.xadesoftware.com/blog/wp-content/uploads/2012/02/martin-300x286.jpg" alt="" width="300" height="286" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.xadesoftware.com/blog/archives/526/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review 1</title>
		<link>http://www.xadesoftware.com/blog/archives/511</link>
		<comments>http://www.xadesoftware.com/blog/archives/511#comments</comments>
		<pubDate>Mon, 23 Jan 2012 12:40:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Leonardo]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://www.xadesoftware.com/blog/?p=511</guid>
		<description><![CDATA[This is how Leonardo currently looks: Yesterday, Daniel &#38; Max was over and we did a user test on Daniel. Here is a list on things that probably should get addressed: Daniels initial reaction after lunching the application was something along the line: &#8220;What tool, brush and color do I currently have and how do I change it?&#8221; Daniel [...]]]></description>
			<content:encoded><![CDATA[<p>This is how Leonardo currently looks:</p>
<p><a href="http://www.xadesoftware.com/blog/wp-content/uploads/2012/01/20120122-leonardo-1.png"><img class="aligncenter size-medium wp-image-517" title="20120122-leonardo-1" src="http://www.xadesoftware.com/blog/wp-content/uploads/2012/01/20120122-leonardo-1-300x251.png" alt="" width="300" height="251" /></a></p>
<p>Yesterday, Daniel &amp; Max was over and we did a user test on Daniel. Here is a list on things that probably should get addressed:</p>
<ol>
<li>Daniels initial reaction after lunching the application was something along the line: &#8220;What tool, brush and color do I currently have and how do I change it?&#8221; Daniel eventually figured all of this out, but it was not obvious from the start.</li>
<li>When Max was experimenting around in Leonardo he zoomed out to ~15% and continue painting without realizing that he was at ~15% zoom. This was never a problem for Daniel though.</li>
<li>Daniel wanted to draw a straight line but never figured out how to do it (it is obviously impossible for the user to know to hold down Q). Once I told him how to do it he instantly loved the way the &#8220;draw straight line tool&#8221; worked.</li>
<li>When Daniel got the task: &#8220;convert your current painting to gray-scale&#8221; he did not realize that the command &#8220;Luminosity&#8221; under Filters does this.</li>
<li>Both Daniel and Max wanted to create a new Canvas and start searching for &#8220;New&#8230;&#8221; under the File menu, but is not there&#8230;</li>
<li>By mistake Max eyedropped white, he then resumed painting but did not realize he was painting with white and asked why nothing was happening.</li>
<li>When Daniel was switching to Finite Canvas he thought it was strange that the canvas boundary did not get aligned with his current view.</li>
<li>When Daniel should flip the image he flipped it vertically when he was supposed to flip it horizontally (an icon should probably make this much more obvious).</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.xadesoftware.com/blog/archives/511/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Content Creation Software</title>
		<link>http://www.xadesoftware.com/blog/archives/496</link>
		<comments>http://www.xadesoftware.com/blog/archives/496#comments</comments>
		<pubDate>Tue, 27 Dec 2011 20:56:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Chatter]]></category>

		<guid isPermaLink="false">http://www.xadesoftware.com/blog/?p=496</guid>
		<description><![CDATA[This is an intressting way of categorizing content creation software: Compositors (applications that export data that is intended for the end-user) Image compositor, exports PNG, JPEG etc. (this is Leonardo) Video compositor, exports AVI, MPEG etc. Document compositor, exports PDF. Code compositor, exports EXE. Collectors (applications that collect data from the outside world) Image collector, imports [...]]]></description>
			<content:encoded><![CDATA[<p>This is an intressting way of categorizing content creation software:</p>
<p><strong>Compositors<br />
</strong>(applications that export data that is intended for the end-user)</p>
<ul>
<li>Image compositor, exports PNG, JPEG etc. (this is Leonardo)</li>
<li>Video compositor, exports AVI, MPEG etc.</li>
<li>Document compositor, exports PDF.</li>
<li>Code compositor, exports EXE.</li>
</ul>
<div>
<p><strong>Collectors<br />
</strong>(applications that collect data from the outside world)</p>
<ul>
<li>Image collector, imports RAW etc.</li>
<li>Video collector, imports R3D etc.</li>
</ul>
</div>
<p><strong>Coadjutors<br />
</strong>(applications that export data that is <em>not</em> intended for the end-user but rather to be imported by some compositor)</p>
<ul>
<li>Surface modeler, exports OBJ etc.</li>
<li>Voxel modeler, export OBJ with corresponding textures (this is Michelangelo).</li>
<li>Texture painting, export textures.</li>
<li>Model animation, exports OBJs etc.</li>
<li>2D vector graphic editor, exports SVG etc.</li>
<li>Spreadsheet editor, exports XML.</li>
</ul>
<div>(this list is incomplete)</div>
]]></content:encoded>
			<wfw:commentRss>http://www.xadesoftware.com/blog/archives/496/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Single &#8220;Project&#8221; Interface</title>
		<link>http://www.xadesoftware.com/blog/archives/484</link>
		<comments>http://www.xadesoftware.com/blog/archives/484#comments</comments>
		<pubDate>Mon, 26 Dec 2011 19:10:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Chatter]]></category>

		<guid isPermaLink="false">http://www.xadesoftware.com/blog/?p=484</guid>
		<description><![CDATA[I have changed my mind: We are now making Leonardo a &#8220;Single Document Interface&#8221; program. The reasons for this include: Users rarely have more then one tab open which make a tab interface just look dumb. There is already a &#8220;tab-interface&#8221; inside the OS: the task-bar! (Of course, a Chrome style tab systems can do things the task-bar [...]]]></description>
			<content:encoded><![CDATA[<p>I have changed my mind: We are now making Leonardo a &#8220;Single Document Interface&#8221; program. The reasons for this include:</p>
<ol>
<li>Users rarely have more then one tab open which make a tab interface just look dumb.</li>
<li>There is already a &#8220;tab-interface&#8221; inside the OS: the task-bar! (Of course, a Chrome style tab systems can do things the task-bar can&#8217;t, but the point is that handling more then one project really is something that should be done by the OS or, alternatively, with a multi-process architecture as Google Chrome does it)</li>
<li>It would be possible to use Ctrl + Tab to swap between layers instead of projects (tabs).</li>
<li>It&#8217;s easier to develop a SDI application then a TDI.</li>
</ol>
<div>Below is a sketch of Leonardo with all panels visible, except console:</div>
<div><a href="http://www.xadesoftware.com/blog/wp-content/uploads/2011/12/ui20111222.jpg"><img class="aligncenter size-medium wp-image-485" style="margin: 4px;" title="ui20111222" src="http://www.xadesoftware.com/blog/wp-content/uploads/2011/12/ui20111222-300x186.jpg" alt="" width="300" height="186" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.xadesoftware.com/blog/archives/484/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Definitions &amp; Constrains</title>
		<link>http://www.xadesoftware.com/blog/archives/480</link>
		<comments>http://www.xadesoftware.com/blog/archives/480#comments</comments>
		<pubDate>Sat, 17 Dec 2011 11:35:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Chatter]]></category>

		<guid isPermaLink="false">http://www.xadesoftware.com/blog/?p=480</guid>
		<description><![CDATA[Here are some definitions &#38; constrains about Xade and Leonardo: Xade applications are defined by what they export. Xade applications internal file formats should be viewed as a project file with revision control. Xade applications should be able to import every format that could be of interest for producing what the application export. So, what is Leonardo? Leonardo only export image files like PNG, JPEG, [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some definitions &amp; constrains about Xade and Leonardo:</p>
<ol>
<li>Xade applications are defined by what they <em>export.</em></li>
<li>Xade applications internal file formats should be viewed as a project file with revision control.</li>
<li>Xade applications should be able to <em>import </em>every format that could be of interest for producing what the application <em>export</em>.</li>
</ol>
<p>So, what is Leonardo?</p>
<ol>
<li>Leonardo <em>only </em>export image files like PNG, JPEG, TIFF, TGA, BMP and OpenEXR.</li>
<li>But, Leonardo can <em>import </em>a whole host of formats including 2D- and 3D-vector graphics files. These formats get imported as special read-only layer that can be used either as reference material or rasterised to an image.</li>
</ol>
<p>This divides Leonardo in to two parts:</p>
<ol>
<li>A still image, layer based compositor.</li>
<li>A raster based painting system.</li>
</ol>
<p>And just to be clear, Leonardo will <strong><strong>not</strong></strong><em> </em>do the following:</p>
<ol>
<li>Export vector-graphics or video.</li>
<li>Manipulate vector-graphics or video.</li>
<li>Have specialized tools for photo editing.</li>
<li>Have node based compositing.</li>
<li>Paint on 3D-objects.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.xadesoftware.com/blog/archives/480/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Definitions</title>
		<link>http://www.xadesoftware.com/blog/archives/472</link>
		<comments>http://www.xadesoftware.com/blog/archives/472#comments</comments>
		<pubDate>Tue, 29 Nov 2011 14:06:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Chatter]]></category>

		<guid isPermaLink="false">http://www.xadesoftware.com/blog/?p=472</guid>
		<description><![CDATA[It is important to have crystal clear definitions so everybody knows what you are talking about. I have therefor compiled a list of the most common definitions which you can find under the &#8216;definition&#8217; page to the right.]]></description>
			<content:encoded><![CDATA[<p>It is important to have crystal clear definitions so everybody knows what you are talking about. I have therefor compiled a list of the most common definitions which you can find under the &#8216;definition&#8217; page to the right.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xadesoftware.com/blog/archives/472/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Back from India!</title>
		<link>http://www.xadesoftware.com/blog/archives/412</link>
		<comments>http://www.xadesoftware.com/blog/archives/412#comments</comments>
		<pubDate>Sun, 27 Nov 2011 20:51:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Chatter]]></category>

		<guid isPermaLink="false">http://www.xadesoftware.com/blog/?p=412</guid>
		<description><![CDATA[Back from India (one week ago now). I have created three new pages to aggregate some good ideas (look to the right under &#8216;pages&#8217;)]]></description>
			<content:encoded><![CDATA[<p>Back from India (one week ago now).</p>
<p>I have created three new pages to aggregate some good ideas (look to the right under &#8216;pages&#8217;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xadesoftware.com/blog/archives/412/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>State of the Application 2</title>
		<link>http://www.xadesoftware.com/blog/archives/330</link>
		<comments>http://www.xadesoftware.com/blog/archives/330#comments</comments>
		<pubDate>Fri, 21 Oct 2011 10:44:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Leonardo]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.xadesoftware.com/blog/?p=330</guid>
		<description><![CDATA[On Saturday I will travel to India for 4 weeks. So I thought it&#8217;s time to give you The State of the Application! User Interface This is how Xade Leonardo currently looks: (The Swedish flag should not be there in the final version ;-) ) Since I want to minimize UI clutter I have thought long and hard [...]]]></description>
			<content:encoded><![CDATA[<p>On Saturday I will travel to India for 4 weeks. So I thought it&#8217;s time to give you The State of the Application!</p>
<p><strong>User </strong><strong>Interface<br />
</strong>This is how Xade Leonardo currently looks:</p>
<p><a href="http://www.xadesoftware.com/blog/wp-content/uploads/2011/10/leonardo20111020cut.png"><img class="aligncenter size-full wp-image-342" title="leonardo20111020cut" src="http://www.xadesoftware.com/blog/wp-content/uploads/2011/10/leonardo20111020cut.png" alt="" width="550" height="427" /></a></p>
<p>(The Swedish flag should not be there in the final version ;-) )</p>
<p>Since I want to minimize UI clutter I have thought long and hard over what should be visible at all time. I have come up with the following things: Current tool, tool help, current color, file size, zoom level, currently selected layer and if Leonardo is currently doing some background work. You don&#8217;t need to show the current brush and radius since the cursor already contains that information.</p>
<p>Although the Leonardo engine can handle Layers, the UI doesn&#8217;t show you any information about them right now. So far, my best idea for this is to put small tabs on the right hand side of the canvas where the Layer name is written vertically to save space. I am planing on making layers a &#8220;first class citizen&#8221; so that it will be possible to drag-n-drop layers between tabs, drop files in and out as layers including recently exported files from the Export bar (not shown in picture above).</p>
<p>One thing that hit me recently is that you want to avoid having sliders on the left and upper part of the screen. This becomes apparent when you use a tablet with a built-in display. Your arm will then cover most of the screen while you are adjusting the slider something you obviously want to avoid.</p>
<p>&nbsp;</p>
<p><strong>Color Spaces and Gamma<br />
</strong>A couple of weeks back I spent some time teaching myself about Color spaces and Gamma correction. I had some prior knowledge of this but if you would have asked me: &#8220;Why doesn&#8217;t a standard HSV-Hue shift preserve luminosity?&#8221; I would have no good answer. Now I know the answer and I am planning on addressing it in Leonardo among a whole host of other issues. What is amazing to me is that not even Photoshop manage to do all this correctly. I guess they know all these at Adobe but they are stuck with what they got because of backward compatibility issues.</p>
<p>My current thinking is having Leonardo work in an absolute color space like sRGB or AdobeRGB as opposed to just &#8220;random&#8221;-RGB and storing pixels in linear-space as opposed to Gamma-space. I also hope to be able to do some of the pixel operations in LUV-1976 space (like Hue shifts) which I find a really nice color space although there might be some problems with out-of-gamut colors.</p>
<p>Everybody is familiar with a tone-histogram (the one you get in a digital camera or under Photoshop Levels) which mostly is used for setting the black- and white-point of an image. A couple of days ago I had a crazy idea on taking this to the next level with a density or contour plot of the chromaticity of an image. I think this will be an awesome visualization for Hue/Saturation and Color-correction style adjustments and it will make it obvious to a novice user why a Hue-shift is a modular adjustment.</p>
<p>&nbsp;</p>
<p><strong>Destructive vs. Non-destructive editing<br />
</strong>Over the past 5 months I must have spent over 60 hours just thinking about destructive vs. non-destructive editing (my favorite occupation while taking a walk along the lake). Now, Leonardo is primarily a <em>destructive </em>image editor but since you want some form of synthesis between different layers the question is how far you go down the path of non-destructive editing? Do you allow blend modes? Do you allow procedurally generated layers?  Do you allow vector layers? Do you allow non-destructive adjustment layers? Do you allow non-destructive warps? Do you allow visibility masks? Do you allow &#8220;layer styles&#8221;? All of these are still open questions&#8230;</p>
<p>Another problem related to this is my personal disgust about &#8220;blending modes&#8221;, I understand they are extremely powerful for the expert user, but even me, with a strong mathematical background, can&#8217;t use them intuitively! On the other hand, I haven&#8217;t come up with a good alternative :-(</p>
<p>&nbsp;</p>
<p><strong>Node recursion<br />
</strong>In a previous blog post I talked about switching to a fixed root system, well, I switched back! I found a way to solve the problem and still keeping a non-fixed-root which I am really satisfied with.</p>
<p>While we are on the topic of node recursions, this is one of the most beautiful things I have ever written:</p>
<pre>struct node_s {
    unsigned int cb : 4;
    unsigned int id : 28;
    struct node_s *childs[0];
};</pre>
<pre>node = node-&gt;childs[ bitcount[ node-&gt;cb &amp; ((1&lt;&lt;c) - 1) ] ];</pre>
<pre>(node-&gt;bash is a compact child pointer list, node-&gt;cb is child-bits and c is the child number you want to get to)</pre>
<p>The node data have a very small footprint (notice the struct-hack), it&#8217;s super fast and yet the whole thing is relatively simple. Storing you node meta data in this way only takes a fraction of the space it otherwise would! Unfortunately I use quite big nodes these days (128&#215;128 pixels) so this doesn&#8217;t really matter that much anymore :-(</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xadesoftware.com/blog/archives/330/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
