tag:blogger.com,1999:blog-74721513001827746352024-03-13T05:11:09.540-07:00Wobastic SoftwareNews and announcements from Wobastic Software Inc.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.comBlogger27125tag:blogger.com,1999:blog-7472151300182774635.post-76585103657141260782022-02-25T20:36:00.000-08:002022-02-25T20:36:45.028-08:00Omber in Other Languages<div class="separator" style="clear: both; text-align: center;"><a href="https://www.wobastic.com/blog/2022-2-25-translation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="262" data-original-width="201" height="262" src="https://www.wobastic.com/blog/2022-2-25-translation.png" width="201" /></a></div><p>I think it's important to translate programs into many different languages. That makes it easier for people in different countries to learn and use these programs. Unfortunately, it hasn't been practical to translate Omber to other languages. </p><p>The first problem is cost. Translating programs cost money. When I've translated websites to other languages in the past, it hasn't really increased the number of users much, so translating Omber wouldn't really be able to recoup the cost of the translations. </p><p>The next problem is time. It takes a huge programming effort to prepare an app for translation. Translating Omber is particularly hard. Other apps just use a bunch of abstract icons for their user interface. I can never understand what the icons in other apps mean, so I designed Omber to have text for all of its icons. It also has many help screens and a tutorial system. These help screens make use of many diagrams and animations, which would also need to have different versions made for different languages. Preparing all the text in all of these different places to be translated would be a huge effort.</p><p>Then, there is the issue of software evolution. When I have the time, I go in and tinker on Omber and try to add new features. Every time a new button or screen is added to the program, these new elements have to be translated. Hiring out a bunch of translators to translate a few words of text is a real hassle. On job contracting websites, translators would end up spending more time bidding for the translation work than on actually doing the translation. All this hassle would make me less able to add new features to Omber, and many of these new features would not end up being properly translated to other languages.</p><p>Finally, there are compliance issues. When an app is translated into other languages, you are considered as trying to sell to countries where those languages are spoken. With European countries in particular, you are expected to comply with the laws of those countries when you try to sell things to those countries. Omber is just a small app, and I don't have the time to study the law regarding apps in all those countries to ensure that the app is legal with regards to privacy and other restrictions, so it's easier to just keep the app in English and say that I'm not trying to sell my app to those countries.</p><p>These are the main reasons that have prevented me from translating Omber to other languages. I have always wanted to translate Omber to other languages, but it just hasn't been practical. </p><p>I started rethinking my stand last year. Omber started getting a lot of users from Saudi Arabia for some reason. It looked like it was just a temporary spike. It seemed like it might just be some schools using the app temporarily for remote learning when students can't get to computer labs (since Omber is available for free on so many platforms, it's great for this purpose) and that usage would die down later. Still, I felt guilty because the app didn't even support Arabic text. What's the point of learning a drawing app if you can't use it for making posters and other art in your own language? It's possible that Omber was only being used in English schools, but it still made me feel bad. Fortunately, I had been studying how to add support for complex scripts like Arabic to Omber for many years, so I was able to add that feature in quickly (though it has taken an additional year to fully flesh out and stabilize support for it).</p><p>The number of users from Saudi Arabia eventually went down, as expected, and I didn't think about it much again. But at the start of this year, the number of users from Saudi Arabia went up again. This caused me to think about how all those users were making an effort to use an app despite the fact that it was in English while I wasn't making even a little effort to make the app more suitable for them. So I decided to investigate if I could meet the app's non-English users halfway somehow. This is what I'm doing:</p><p></p><ol style="text-align: left;"><li>Translating the app won't recoup the cost of the translations, but I'll still try translating to a couple of languages where there are a significant number of Omber users. Setting up the <a href="https://github.com/my2iu/JavaStringExternalize">tools for the translation</a> will take a significant effort, but I'll hopefully be able to reuse those tools for other projects</li><li>The app will continue to be an English app with an English app listing. Some of the buttons for basic functionality will be translated though. Help screens, diagrams, dialog boxes, etc. will remain in English. So the final app will be a mix of English and some other languages.</li><li>Google has made a translation service available through its Play Console where app developers can submit small translation jobs of even only a few words. I'm not sure about the quality of the translations. The translation service notably doesn't even have a way to submit translation notes to help guide translators on how certain words should be translated. But this translation service seems like it will work well with how Omber is developed even if the translation quality isn't great</li><li>Omber has so few users that I doubt anyone cares if I'm not entirely compliant with European regulations, but just to be safe, I will only target languages used in non-European regions like Quebec and Saudi Arabia.</li></ol><div>So over the next few days or weeks, Omber will hopefully be available with some partial translations on several platforms. It will likely take a while to stabilize and tweak all the layouts for the different languages, particularly regarding RTL issues, but I'm hoping these initial steps will make Omber easier to use even if they're imperfect.</div><p></p>Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-4984595483235465412022-02-23T10:44:00.001-08:002022-02-23T10:47:19.393-08:00Some Omber Editions Discontinued<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://www.wobastic.com/blog/2022-2-23-fewerversions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="612" data-original-width="588" height="612" src="https://www.wobastic.com/blog/2022-2-23-fewerversions.png" width="588" /></a></div><br />Omber has a lot of different editions available for many different platforms. These editions accumulated over time for various reasons. Unfortunately, some of these editions are being discontinued.<p></p><p>Omber Pro for Windows is being discontinued. The regular Omber for Windows is free, but you can unlock certain premium features for a modest subscription fee. I know some people don't like subscription software, so I also offered Omber Pro, a paid edition with all features permanently unlocked. Unfortunately, Microsoft is no longer allowing me to sell Omber Pro. Omber Pro only ever sold a couple of copies, so Microsoft is removing it from the Windows Store. I want to be able to continue updating it so that those who purchased the software in the past can still get any new features that I add to the regular edition of Omber, but Microsoft is blocking me from updating it as well. </p><p>Omber Express for MacOS is also being discontinued. I originally had two apps: a free Omber for the Mac and a freemium Omber for iOS. Then Apple merged their Mac Store and iOS App Store, and they allowed in-app purchases across iOS and Mac as long as apps had a single entry in the app store. So the free Omber for the Mac became Omber Express, and I made a new freemium regular Omber with editions for iOS and Mac. That way, users who paid to unlock premium features on iOS could also use those premium features on the Mac version as well. I wanted to discontinue Omber Express for the Mac, but it had one feature--customizable keyboard shortcuts--that were a paid feature in the regular version of Omber, so I kept Omber Express in the store for those people who had already started using the earlier edition of Omber and liked having keyboard shortcuts for free. Unfortunately, new users keep downloading Omber Express even though it's no longer updated. All new features are only added to the regular version of Omber. Since Omber doesn't actually make money anyway, I'm simply going to make customizable keyboard shortcuts free in the next release of Omber, and I will then discontinue Omber Express for Mac.</p><p>The mess of editions available for Android will stay the same. Originally, I just had a paid edition called Omber. Since the web edition was free, I decided I should also make a free version of Omber for Android called Omber Lite. I eventually enabled enough functionality in the free version, that I decided that most people really should simply use the free version. As such, I renamed the paid version of Omber to Omber Pro. The freemium version of Omber was renamed from Omber Lite to regular Omber. Omber Express for Android is a free version of Omber that doesn't have access to any premium features that's intended for people with Android devices that can't access Google's Play store.</p>Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-17270993378483283252020-04-29T11:01:00.000-07:002020-04-29T11:08:40.965-07:00Dashed Lines<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.wobastic.com/blog/2020-4-29-dashes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="254" data-original-width="352" src="https://www.wobastic.com/blog/2020-4-29-dashes.png" /></a></div>
Omber now has support for dashed lines. I've included a few basic types of dashes that can be chosen from, but it's fairly easy to add more types if you need more. Just let me know.<br />
<br />
<a name='more'></a><br /><br />
Since Omber is intended for drawing organic vector shapes with subtle shading, it's a little odd for me to add support for dashed lines. I try to use Omber for general vector art tasks, and although it's not perfect, it usually works fine for most tasks. One area that I've had trouble using Omber for is in drawing technical diagrams. With technical diagrams, you just sometimes need to use dashed lines for things. I've tried using colored lined or gray lines or semi-transparent lines, but it's just not the same. And I don't have the patience to draw each of those dashes individually. Some of Omber's icons also make use of dashes, so dash support is also necessary if I want to be able to use Omber to make all of Omber's art (this sort of bootstrapping or self-hosting tools is very pleasing to computer people). So I've finally added support for dashed lines.<br />
<br />
Adding support for dashed lines was trickier than I originally thought. I was originally planning on implementing support for it using shaders, But when I examined SVG and various vector art tools, I realized that they added endcaps to their dashes, which means each dash is rendered as a separate line. I wasn't too keen on this initially because it seemed slow and it limits how small your dashes can be since even the smallest dash will have two big endcaps on the end. But I decided compatibility and consistency were important here, so I decided to follow the approach used by other programs. This required me to rewrite my line rendering code to be much faster to be able handle drawing all the lines. Fortunately, I was planning on doing that anyway, so that I could use Omber for large technical drawings with lots of lines. I then encountered a problem with the fact that Omber's lines can have differing widths along their lengths. This is an issue that other tools don't have to deal with. In order to look good, the dashes should scale along with the width of line. This was unexpectedly tricky, requiring me to use integrals and other calculus to render the line properly. The result can be seen above. I think it looks good.<br />
<br />
<i>Note: New versions of Omber supporting dashed lines will be released soon for Windows, web, and Android. Unfortunately, new releases for Mac and iOS will be delayed. I need access to a Mac to make new releases for those platforms, but I don't have one available to me during the lockdown.</i><br />
<br />
<br />Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com2tag:blogger.com,1999:blog-7472151300182774635.post-42396140895928104832020-03-14T16:03:00.003-07:002020-03-14T16:03:48.656-07:00Cloud Saves in OmberNow that Omber works on iPads and Android phones and computers, I've had a few situations where I've wanted to work on a drawing from different places. I've wanted to work on it from my desktop computer at home, review it on my cellphone while on the subway, and play with it on a tablet while at the library. Transferring files between all these devices is a bit of a pain, so I've been looking into better support for saving documents in the cloud for Omber.<br />
<br />
Other apps support cloud saves by making their own cloud services that users can subscribe to. That approach does provide a really good and consistent experience, but it locks users into a service, and it's expensive for users. Instead, I've tried to better integrate Omber with the native cloud saving services available on different devices.<br />
<br />
<a name='more'></a><br />
From the beginning, the iOS version of Omber has integrated with Apple's cloud documents system. Apple's system worsens the Omber experience somewhat. When you first start Omber, it confusingly just shows a blank screen with a plus sign to create a new document since Apple's document system does not provide a way to show any help text or include sample files or make other customizations on this startup screen. But it does mean that it's relatively easy to work with drawings in iCloud once you get used to the system. Working with drawings saved in other cloud services is a bit of a mess and sort of unreliable though.<br />
<br />
Notably, it's not possible to create or open documents on Google Drive when using Apple's document system. To work around this limitation, I've added a special menu option on the main documents screen. If you press the "..." button in the upper-right, and then choose "Open any file" from the menu, you will then be presented with a documents screen that lets you open drawings from Google Drive. To create a new document, you may have to create the document on your iPad or iCloud first, and then copy it to Google Drive.<br />
<br />
The Android version of Omber is older than the iOS version, so it's based on an older approach to storing documents where all drawings are stored in the app itself. In the past, you could also go into the file system and copy those files around easily, but Android is moving away from that model and towards the Apple model where files inside the app have to stay inside the app and can't be copied around like on a regular computer.<br />
<br />
I've now added the ability to open drawings stored in the cloud by pressing the icons of three bars (i.e. the hamburger icon) in the upper-right, and then choosing "Open outside file" from the menu. You can then choose an Omber drawing that you have stored on Google Drive or elsewhere. You currently can't directly create a new Omber drawing in the cloud. Android currently doesn't offer a nice mechanism to let users both create and open files in the cloud from a single screen. Instead, you must first create a new drawing in Omber by pressing the "New Drawing" button. This will create a drawing inside Omber. Then, go back to the main screen with all your drawings. Find your drawing and press the "⋮" button for the drawing. Choose "Copy out" from the menu to copy your drawing to cloud storage. You can then delete the original drawing and use "Open outside file" to open the version stored in the cloud.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-36851098664501307932019-09-02T17:50:00.001-07:002019-09-02T17:50:52.339-07:00Coming Soon to an iPad or iPhone Near You...<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.wobastic.com/blog/2019-9-2-omber-on-ios.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="299" data-original-width="300" src="https://www.wobastic.com/blog/2019-9-2-omber-on-ios.jpg" /></a></div>
<br />Minghttp://www.blogger.com/profile/01458103015154082202noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-71509752769001007882019-06-03T13:10:00.001-07:002019-06-03T13:10:32.152-07:00Shape Previews<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.wobastic.com/blog/2019-6-3-shapepreview.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="255" data-original-width="610" src="https://www.wobastic.com/blog/2019-6-3-shapepreview.gif" /></a></div>
<br />
<br />
It's always hard to choose which new features should be added to Omber next. Obviously, I want as many people to use Omber as possible, but different features will appeal to different users. Should I improve the quality of the rendering for those who need the highest quality output? Should I add features that are unique to Omber to differentiate Omber from other tools? Should I improve the workflow for traditional vector graphics to make Omber more competitive for traditional vector graphics tasks? Should I add more premium features to give more incentives for people to purchase a subscription to Omber?<br />
<br />
One type of user that I worry about is the beginner user. Many users who download Omber uninstall it soon afterwards. I suspect that some of those downloads are fake downloads or users who downloaded the wrong app. Still, I think many beginner users might simply be confused with how to use Omber. Most people aren't familiar with vector drawing apps. I've seen some beginner users try to rub their finger on the screen, trying to "paint" a scene, even though that's not how most vector drawing apps work. These beginner users will obviously become frustrated when nothing works like they expect, and they will uninstall Omber quickly.<br />
<br />
To help these new users, I've been thinking about different ways that Omber could introduce them to vector graphics. I already include a basic introduction to vector graphics when Omber is first started, but it's a bit long to read and follow, so I suspect that most people skip it. I considered building an extensive tutorial system that would guide users step by step in how to draw different things in Omber, but those are actually difficult to make. After playing around with some other vector drawing apps, I noticed that some have a slightly different workflow where they constantly show a preview of the shape that you are drawing as you draw it.<br />
<br />
This additional feedback seems like it might help show beginner users that vector drawing tools work differently from bitmap painting programs. If users try to rub their fingers on the screen, they will immediately see that they are specifying the outline for a shape instead of painting on a canvas because the shape preview will immediately show the shape being drawn. Users will get an intuitive feel for how vector drawing apps work instead of needing a tutorial explaining the difference.<br />
<br />
I was hesitant about implementing it because I was afraid that Omber's rendering engine would be too slow and not robust enough to handle it. But I've done a lot of work on the rendering system, and it seems like it might handle it. It also required a revamp of the undo system, and lots of tweaks to the workflow. I myself am still getting used to the new new workflow with previews, and it's a tad less responsive than the old version without previews, but hopefully it will provide a gentler introduction to beginner users about the world of vector graphics.<br />
<br />Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-31192488576357649132019-05-28T20:46:00.003-07:002019-06-17T23:02:10.222-07:00Research Paper at Graphics Interface 2019During the last few months, I haven't been releasing any features for Omber, and I apologize. I've been busy preparing a research paper describing some of the underlying technology behind Omber's advanced gradient system. This paper will be published at the <a href="http://graphicsinterface.org/">Graphics Interface</a> 2019 conference. I've named the technology <a href="http://graphicsinterface.org/proceedings/gi2019/gi2019-26/">DiffusionMesh</a> for the research, but it's the same technology that you get to use in Omber. You might even recognize some of Omber's clipart in the example images. If you're interested, check out the <a href="https://www.wobastic.com/blog/2019-5-diffusionmesh_gi2019_paper.pdf">paper</a> and supplementary <a href="https://www.wobastic.com/blog/2019-5-diffusionmesh_gi2019_video.webm">video</a>. I've also made a video of the presentation I will be giving at the conference, and I will post it here once I've finished editing it together.<br />
<br />
<b>Update:</b> <a href="https://youtu.be/KPEPrH2wGIE">The presentation video is now available</a>.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-31689003218469461602018-10-04T21:22:00.003-07:002018-10-04T21:22:43.973-07:00Performance Improvements for OmberOmber's performance has always been slower than other vector drawing tools because<br />
<br />
<ul>
<li>it can run in a web browser, and web browser code is slower than other code</li>
<li>it uses a custom graphics engine that I've written from scratch. Although this engine has support for Omber's gradients, it lacks many of the optimizations that are in older, more developed vector graphics engines</li>
<li>I've focused on adding features instead of on performance</li>
</ul>
<br />
This hasn't really been a problem for my uses because Omber defaults to a low quality mode that is fast enough to work with, and I can turn on the high quality HQ mode when I want a final image. I occasionally hire artists to give feedback about Omber, and I've been worried that they are initially confused by the low quality of Omber's default rendering. When they do find the HQ mode, they then tend to leave it on or they tend to regularly switch it on and off, meaning they experience sluggish performance when working.<br />
<br />
This has worried me for a while, so I've decided to focus on improving Omber's performance enough that it can default to being in HQ mode. Below is a simulated animation of the different performance enhancements that I've made:<br />
<br />
<div class="separator">
<a href="https://www.wobastic.com/blog/2018-10-3-performance.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="176" data-original-width="438" src="https://www.wobastic.com/blog/2018-10-3-performance.gif" /></a>
</div>
<br />
On the right is the original Omber. When you move a shape, it takes a while to draw, so it feels jerky and unresponsive. I spent a lot of time fixing up the performance of the initial drawing of shapes, so that Omber is responsive during shape manipulation. The middle animation demonstrates the effect of these performance improvements.<br />
<br />
Omber also has a separate gradient generation stage that works in the background to generate gradients after you manipulate shapes. Since this runs in the background, it doesn't affect the responsiveness of Omber, so it usually isn't performance critical. Unfortunately, in HQ mode, the shapes that Omber has to deal with are more complicated, and the gradient generation started to become too slow for complex drawings. In the middle animation, you can see that after the shape has finished moving, it takes a while for the gradients to be calculated.<br />
<br />
So I'm now working on improving gradient generation speed, so that Omber will behave like in the left animation, where it's responsive when you move a shape, and then the gradient quickly fills in afterwards.<br />
<br />
The key to all these performance improvements is a new feature added to web browsers called <a href="https://webassembly.org/">Web Assembly</a>. The existing Omber code has already been heavily optimized in the past. Unfortunately, in the past, web browsers could only run code written in JavaScript, and there are limitations to how fast those web browsers can run that code. WebAssembly lets browsers run code written in C++. This opens up many new possibilities for performance enhancements. C++ gives programmers more control over memory layouts, data types, and memory allocation. This makes it possible to rewrite key pieces of Omber code to make use of this extra control. For example, many of Omber's algorithms need to process thousands of points and triangles. With C++, these points and triangles can be stored compactly in arrays, which can be accessed more quickly and take less memory. Putting things in arrays also provides an arbitrary and implicit ordering on objects, providing a means to sort these objects. Supplementary information about these objects can be stored in arrays instead of dictionaries. Traditionally, the main problems with C++ is that it's hard to write and it's prone to security problems. I'm dealing the coding difficulties by focusing my efforts on only the small sections of code in Omber that take the most time. WebAssembly eliminates most security problems with C++ by adding extra security checks throughout the code.<br />
<br />
As I've rewritten the slow parts of Omber in C++, I've also discovered a few coding mistakes that have reduced performance that I've eliminated. For example, I added some special code for handling some edge cases in the Edge web browser. Unfortunately, this resulted in mouse events being processed twice, halving performance.<br />
<br />
These performance improvements will be released in the next week or two. After this round of optimizations, I think there are only limited means available for further speed-ups, such as taking advantage of increased parallelism (not really possible in web browsers) and algorithmic improvements (I have a few ideas in mind here, but those changes would require extensive new research).Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-30279206286519954822018-08-23T14:44:00.000-07:002019-02-06T09:38:40.205-08:00Game Engine Import for Omber<video autoplay="" loop="" muted="" src="https://www.wobastic.com/blog/2018-8-23-unitychibirunning.mp4">
<source src="https://www.wobastic.com/blog/2018-8-23-unitychibirunning.mp4" type="video/mp4"></source>
</video>
<br />
<br />
One of my long-term goals for Omber is to develop vector graphics tooling for animation and games. That's why the Omber gradient engine is based on a 3d graphics pipeline typical for games instead of a more typical vector graphics pipeline. Omber has supported COLLADA and glTF export for a while because I've always wanted Omber's art to be usable in games.<br />
<br />
Unfortunately, support for COLLADA and glTF is pretty rudimentary in most game engines. The situation is not improving either. The new glTF 3d format is one of the best 3d file standards that's been created in decades. It is the first 3d file format standard with the technical capabilities needed for sharing modern 3d models between programs. But most 3d tools have been very reluctant to add support for it. So even though Omber has been able to export its vector art for use in games, no game engines have been able to actually import this vector art.<br />
<br />
So I took some time out from working on Omber to create some importer plugins for the game engines <a href="https://github.com/my2iu/pixi-omber-gltf2-vector">PIXI.js</a> (which is also used by RPG Maker MV) and <a href="https://github.com/my2iu/UnityOmberGltfImporter">Unity</a>. You don't have to wait around for game engines to catch up to importing modern 3d file formats. You can import Omber vector art immediately into these game engines using the importer plugins with a minimum of hassle. I even game jammed with Omber's PIXI plugin to make sure everything worked, and it was fine. The vector art exported by Omber tends to be heavy in triangles currently, which can be graphics intensive if you have hundreds of pieces of vector art on-screen at the same time, but it's fine for more normal situations. I also used the Unity plugin to make an animation from one of Omber's clipart pieces. Basically, I broke down the chibi boy image into parts and exported each one separately. After importing them into Unity, I reassembled them hierarchically so that the the legs, arms, and heads would be children of the torso object, etc. Then, I could use Unity's animation tools to make a simple run animation. If you want support for other game engines, just send me a message and I'll see what I can do.<br />
<br />
I'm now back to working directly on Omber again. I'm not sure which areas I should focus on next. I could add in more general vector design functionality. Although Omber has some unique features, it will take a while for it to be competitive in the general graphic design space. Even then, it would be hard to compete with better resourced firms. I was thinking of making an iPad port, but now that Affinity Designer is out and Vectornator has been made free, I'm not sure there's much of a market there. Ports are also time-consuming and other versions of Omber won't see any improvements when I'm doing the port. Oddly enough, three years ago, I made a rudimentary animation tool in a few months called Animation Companion, and even now, that tool often has more traffic and more users than Omber. I could use some of Omber's technology to make a much better animation tool, something comparable to Spine and that could also handle vector art exported by Omber. I wonder if that would be a better area to focus on.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-38139792365159702432018-04-11T15:18:00.002-07:002018-04-11T15:18:19.803-07:00Initial Text Support in OmberI obviously use Omber for all my vector drawing needs. There's been a couple of times where I've had to make some graphics with some text in it though, and I had to use another tool because Omber didn't support text. I've also noticed that a lot of designers use vector drawing tools for making UI mock-ups, which also requires text support. So I decided to add some basic text support to Omber.<br />
<br />
I was a bit torn about implementing it. A long time ago, when I was an intern at Sonic Foundry, one piece of advice they often gave was that if you can't implement a feature in an outstanding way, then don't bother implementing it. Reviewers and other users will see that one mediocre piece of the whole application, and instead of seeing it as a useful, free addition to the program for cost-conscious users who can't afford to buy another program just for that functionality, they'll instead seize on it as a weakness of the application that makes it inferior to others. This is especially true with Omber. Omber is a vector drawing tool for making drawings with advanced gradients and subtle shading. There are other vector drawing tools that are better for general purpose vector drawing tasks. If you need to make art with crazy gradients, then Omber is the better tool by far. I would argue that it even rivals tools like Illustrator. By adding text support, I would be making Omber look more like a conventional general purpose vector drawing tool, and users might get confused and think that it's worse than other programs when it's actually just used for different purposes. Would it be better for me to double-down, forget the text, and spend my time making the gradient support even stronger? In the end, I became annoyed that there are apps that are more popular than Omber but which are far worse than Omber at general purpose vector drawing tasks except that they support text, so I decided to spend some time implementing text to see what would happen.<br />
<br />
It took me about a month and a half to implement very basic text support in Omber. Text support is a little strange in that it can be very quick and easy to implement or very long and hard to implement depending on what features you eventually want your text support to have. For example, if you only want to support English text in a text box and if you don't care if text is rendered slightly differently on different platforms, then you can just use the existing text input widgets and text drawing code to quickly implement support for that. Proper support for international text might involve huge lookup tables that would be too hard to download for a web app and custom text editing code while proper support for text transformations and kerning likely requires a custom font rendering engine.<br />
<br />
In the end, I wanted to have the most flexibility in the underlying engine as possible, so I opted to do all the font rendering and display in Omber. This means that text in Omber will initially have fewer features and be rendered with lower quality than in other programs, but it will have consistent font rendering across platforms and the power to eventually have more interesting text effects. Right now, font rendering at small sizes isn't great, and very, very thin fonts don't quite render correctly, but with a custom font engine, I have a lot of knobs I can turn to improve things over time.<br />
<br />
One surprisingly time-consuming aspect of doing your own font rendering is actually in font enumeration: finding out what fonts are on a system. Different platforms have different ways of listing their fonts and getting at font data, and often the documentation on them often isn't great or they use some ancient legacy approach to categorizing fonts that's really complicated. In many cases, the font information provided by the operating system isn't very good, so you have to open the font file yourself and read out extra information about the font directly. Then there's Android which doesn't even provide a way to find out what fonts are on a phone, so you just have to search around the filesystem for font files.<br />
<br />
So in the end, I do have basic text support working in Omber. You can make some drawings with some simple text in them! Right now, I'm trying to figure out what to work on next: adding more features to the text support, better support for non-Western languages, improving the workflow for gradients some more, printing support, or something else entirely.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-5735820667910350282018-02-07T14:29:00.000-08:002018-02-07T14:30:53.216-08:00Wrinkle-Free Engine Preview for OmberI've made some good progress on the new Wrinkle-Free gradient engine for Omber. There's still a lot more work to do, and it will take several months to stabilize it and to get rid of all the bugs. The results are so good, though, that I've decided to release a preview of the Wrinkle-Free engine in the latest version of Omber. The new engine can be <a href="https://www.wobastic.com/omber/help/wrinklefree.html">enabled from the Options menu</a>.<br />
<br />
I'm a little embarrassed to say that I've always been a little unhappy with the images created in Omber. Although Omber was still a great improvement over other vector drawing tools, I've always been reluctant to evangelize it really hard. Every time I looked at images rendered in the old engine, all I could see were the minor visual artifacts at the seams between shapes. But no more! With the new Wrinkle-Free engine, those artifacts are gone, and I can whole-heartedly say that Omber is amazing and that everyone should use it.<br />
<br />
Below is one of the old clipart images in Omber. By default, the shape segments in the drawing are not welded together. The Wrinkle-Free engine only comes into play for welded segments, so, by default, the drawing will be rendered with the old engine. The dog on the left is rendered with the old engine. There are subtle visual artifacts in the image that I've circled in red on the center dog. If you look in those places on the left dog, you'll see some strange lines or creases in the rendered image. In the right dog, I've welded the shapes together where the visual artifacts occurred. This allows the Wrinkle-Free engine to do its job. If you look in the same problem areas, you won't see any of those line artifacts. They've been all smoothed out by the Wrinkle-Free engine.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.wobastic.com/blog/2018-2-7-wrinklefreedog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="303" data-original-width="800" height="151" src="https://www.wobastic.com/blog/2018-2-7-wrinklefreedog.png" width="400" /></a></div>
<br />
I'll be taking a small break from the Wrinkle-Free engine and working on other aspects of Omber for the next month. I may have to finally figure out how to get people to actually use Omber and how to monetize it.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-29458196517958060632017-11-20T21:04:00.000-08:002017-11-20T21:04:05.162-08:00Progress on the Wrinkle-Free EngineI've had another busy month working on <a href="https://www.wobastic.com/omber/">Omber</a>. I know some users have wanted better tutorials showing how to get the most of out Omber, so I sponsored the creation of a new tutorial at <a href="https://tutsplus.com/">Envato Tuts+</a>, which should come out in the next couple of weeks. The tutorial writer pointed out some improvements that would make Omber easier to use, so I went and implemented those. I actually had all of those issues plus many more on my To Do list already, but I have workarounds for those problems when I use the software myself, so I never prioritized fixing them. It's good to have feedback from real users about what sort of improvements they need for their workflows because as the designer of the software, it's easy for me to be blinded about what's difficult to use for normal people.<br />
<br />
The main things I've been working on though, is the new Wrinkle-Free gradient engine for Omber. This is the engine that does the actual shading and blending of colors across a shape. There's still a lot of work to go, but I now have an early version of the engine running. The new Wrinkle-Free engine uses a new mathematical model of how to blend colors that takes into account the psychology of how users perceive "smoothness." It's endlessly complicated, but the new Wrinkle-Free engine should be able to make gradients that seem much smoother and easier to control than before.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.wobastic.com/blog/2017-11-20-wrinklefreedevelopment.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="216" data-original-width="752" height="113" src="https://www.wobastic.com/blog/2017-11-20-wrinklefreedevelopment.png" width="400" /></a></div>
<br />
The picture above is from Omber's Wrinkle-Free engine, and it shows the benefits that the Wrinkle-Free engine is able to bring. On the left, are the shapes that are being drawn. It is a circle that is split in half. The outside edge of the circle is a light grey, while the middle point of the circle is black. The middle picture shows how the current version of Omber will shade the shape. Although the shading is smooth, you can still sort of see the line where the circle is divided in half. On the right is the shading done by the new Wrinkle-Free engine. The Wrinkle-Free engine smudges the black color in the middle much further out from the center of the circle, making a smoother-looking gradient.<br />
<br />
The old engine was already very complicated, but the new Wrinkle-Free engine is even more complex, so it might still be a while before it stabilizes enough that I'll be able to release it. The early results are so good that I'm really looking forward to getting it out there for you.<br />
<br />
<br />
<br />Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-64715829117373177582017-10-26T13:39:00.003-07:002017-10-26T13:39:58.290-07:00Omber Adds glTF 2.0 Export<div class="separator" style="clear: both;">
<a href="https://www.wobastic.com/blog/2017-10-26-gltfexport.gif" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="288" data-original-width="375" src="https://www.wobastic.com/blog/2017-10-26-gltfexport.gif" /></a></div>
<br />
I wasn't planning on adding support for another file format for Omber, but I was so <a href="http://my2iu.blogspot.com/2017/10/gltf-20-i-like-it.html">impressed</a> with the new <a href="https://www.khronos.org/gltf">glTF 2.0 file format</a> that I couldn't help myself. glTF 2.0 is a new format for 3d graphics. In the picture above, you can see an Omber drawing that I've imported into a web-based gltf viewer using the glTF format. Being able to export to glTF means that it's possible to export Omber data in a vector format to game engines or into 3d animation tools. For example, if you wanted to show a SVG drawing in a game but with no loss of detail on screens of different sizes, you could use Omber to convert the SVG drawing into a triangle mesh for the game using the glTF format. Although support for the glTF format isn't widespread yet, when glTF support is added to various 3d animation tools, it will be possible to take your Omber drawings and animated them using those tools.<br />
<br />
I had previously added support for COLLADA export specifically for handling these use cases, but unfortunately, the support for importing COLLADA files in other programs was very unreliable and inconsistent, so it was never 100% certain whether the data exported by Omber would be imported fully by other programs. glTF is a much more straight-forward and well-specified format, so the glTF files created by Omber should import much more easily in other programs when glTF support becomes more widespread.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-82251183140178915182017-09-12T14:38:00.001-07:002017-09-12T14:38:38.723-07:00Introducing...Super Tools<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.wobastic.com/blog/2017-9-12-transparenthandanimation.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="367" data-original-width="332" src="https://www.wobastic.com/blog/2017-9-12-transparenthandanimation.gif" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
</div>
Sometimes, you just need a specialized tool for a niche task. These tools can be incredibly powerful or really simple. The tool might do something that only that one tool can do, or you might be able to achieve the same effect without the tool if you're willing to spend hours of extra work. Sometimes, you can export things to another program that has the necessary functionality, or sometimes not. But when you need a specialized tool for your art workflow, then you really need it.<br />
<br />
It's always hard to know where to stick these tools in a program. It's confusing to have a jumble of miscellaneous tools floating around the interface. How often do you actually need to use the "spiral" tool or "star" tool that's available in other programs? Do you really want to clutter up a clean interface with them? Some of these tools are very niche, but for those rare tasks that need them, they're real life-savers.<br />
<br />
For this reason, I've created the new "Super Tools" feature to Omber. Basically, it'll be a place where I can stick some obscure, but potentially really useful, tools for use in Omber. It will be accessible from the "Options" menu. Currently, there are two tools: a posterization tool called the "Image Palette Reducer" and a tool for creating transparency called the "Transparent Overlay Maker." I believe these Super Tools will be really useful in creating gradient drawings. Above, you can see an animation of the Transparent Overlay Maker in action. I start with a black and white drawing of a hand that I made. Then, I subtract out the grey color from the drawing. That converts all the grey parts to be transparent, allowing the underlying pink color of the background to show through.<br />
<br />
Hopefully, I'll be able to add new Super Tools to Omber in the future. Feel free to make suggestions for possible future Super Tools!Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-10317335346436553952017-08-17T13:47:00.002-07:002017-08-17T13:47:40.498-07:00What's Coming Next for OmberNow that Omber has been released for the Mac, I have the time to add more features to Omber again. Currently, I'm working on lots of small bug fixes workflow improvements to the program. I've been working on lots of big, time-consuming features over the past year. While doing those big changes, I've often noticed little things that could be improved. I've always filed them away as things to work on later when I have more time. I recently hired some designers to do some testing on Omber, and they found these minor issues to be a bit problematic too. Like, I'm aware of them. I do use Omber myself. I do encounter these annoyances myself. But I have to trade-off spending time polishing Omber to have a smoother workflow or working on new features that can unlock new domains where Omber can be used. Given that there are vector design apps that have such horrible workflow that they are barely usable yet they are still very popular and widely downloaded, I've usually opted to work on new features. But I think Omber is now sufficiently powerful and useful that I can take a small pause to go in and try to fix a bunch of these minor issues.<br />
<br />
After that, I'm still undecided as to what to work on next. There are three major features that I think would be worth exploring:<br />
<br />
<b>1. Support for Text and Shapes with Holes</b><br />
<br />
Although Omber is a very powerful vector design tool, it is intended primarily for making drawings with soft shading and advanced gradients. To be useful for general vector design tasks though, Omber would need to have support for text, dashed lines, and shapes with holes in them. Support for these features are needed for making diagrams. Should I spend time on making Omber better at being a jack of all trades, or should I focus more on what makes Omber different from other general purpose drawing programs?<br />
<br />
<b>2. New Rendering Engine</b><br />
<br />
Although Omber's gradients are incredibly powerful, when you put several gradients side-by-side, the resulting gradient is sometimes not as smooth as you expect it to be. It's possible for an artist to manually fix this up by adding in some more intermediate shapes to control how the gradient spreads, but it's difficult to explain and a little tricky to do. I'm thinking of creating a new rendering engine called the Wrinkle-Free engine that should fix this problem. It will require a rewrite of how major portions of the internals of how Omber works. It will also require some risky cutting edge research. Currently, Omber rides right on the limit of what scientists know about how to make gradients on computers. The extra-smooth gradients produced by the Wrinkle-Free engine will require the invention of new approaches.<br />
<br />
<b>3. Vector Asset Importer</b><br />
<br />
Although Omber can be used to create infinitely scalable vector art, there aren't any file formats for actually storing and displaying the types of vector art that Omber is capable of creating. So if you want to display your Omber drawings on a web page, you either have to convert it to a bitmap like PNG, or you must use an inferior vector file format like SVG or PDF that can't recreate Omber's gradients. I could write some code that people could put on their web pages to allow people to use Omber drawings in them. I could also write similar code for mobile apps, so that instead of needing to include heavy hi-res bitmaps in the app, they could just include some lighter-weight Omber vector files, and then use the Omber code to decode them when the app is run.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-21537688076322964942017-08-11T21:50:00.002-07:002017-08-11T21:50:57.707-07:00Where's the Mac Version of Omber?<b>Short answer:</b><br />
I will release it to the Mac App Store on Monday, August 14.<br />
<br />
<b>Long answer:</b><br />
I sent the Mac version of Omber off for review on Sunday, and it was accepted on Monday. That was a lot faster than I expected. I thought the review process would take a few days and that I might need a few passes to get it through. In fact, the review process was so fast that it threw off my scheduling. I was expecting to use the time it was in review to work on a backlog of related tasks and to prepare for the release. Instead, I've had to rush the release preparations.<br />
<br />
I've delayed the release for a week so that I can update the website and do some PR. This new Mac version is a major new undertaking for Omber, and I want people to know about it. It's weird. Even though I'm the creator of Omber, I still find myself instinctively reaching for CorelDraw when I want to edit some SVG icons. When I catch myself and use Omber instead, even I'm surprised by how well it works. I keep thinking to myself, "this program is so awesome, and it's free. Why aren't more people using it?" So I'm going to make a real effort to spread the word about Omber this time.<br />
<br />
I'm really eager to let people get their hands on the Mac version of Omber. I know that Mac people are very picky about their user interfaces, so I put a lot of effort into integrating Omber into the Mac ecosystem. It makes use of Cocoa's document framework, so you get all the proper file menus and edit menus and saving and whatnot. I made an effort to "Macify" the drawing UI by using a Mac-like color scheme and moving all the close buttons to the upper-left of windows. I admit that the UI still exhibits a "house-style" rather than true "Apple-style." I'm a big believer of the old-school UI approach of trying to make interfaces readable and self-describing. As a result, the UI will seem more functional rather than artful. I consider that part of the indie, artisanal charm of using software developed by a single person. The only UI issue that I feel I wasn't able to come through on was support for the advanced features of Apple's peripheral devices. The prices of the Magic Mouse, Trackpad, and TouchBar really add up after a while, and I couldn't really justify buying them. So none of the special gestures and options of those devices are supported. Still, I think Mac users will be really satisfied with the experience of using Omber on macOS.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-86763220225980244922017-03-27T16:49:00.000-07:002017-08-07T17:44:41.278-07:00Next for Omber: SVG or Windows?I've finally finished support for transparency and texture-mapping in Omber, and I'm really pleased with the result. I can finally make a nice vector portrait in Omber even with limited art skills. But now I have to decide on the next feature to add to Omber. Unfortunately, Omber has very few users, so I just have to guess what people would find useful instead of simply asking them. Part of the problem is that Omber is a highly specialized tool with features that no other program has, so artists don't really understand how it's different or all the cool things you can do with it. I'm currently trying to decide between adding some limited support for SVG and making a special Windows version.<br /><br />I've had two people mention adding SVG support to Omber. Since SVG is the main vector image format, Omber could then be used as a general vector drawing tool. The problem is that Omber specializes in advanced gradients that can't even be represented in SVG. So although adding SVG support would mean that Omber could be used as a basic vector drawing tool for making simple icons etc, that isn't what Omber is best at. Most of Omber's best features couldn't even be used because they can't be exported to SVG. Then again, I can see other people with very basic SVG drawing tools that are orders of magnitude more popular than Omber, and I wonder if adding SVG support might be a useful stepping stone to introducing people to some of the great, revolutionary new features in Omber.<br /><br />The other alternative is to make a special Windows version of Omber with better file support and possibly much better performance. I think Omber has a really useful feature set already. Making Omber available in the Windows store means there will be a new place where people can find out about it.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-59868827994347302902017-03-24T13:47:00.000-07:002017-08-13T13:48:06.737-07:00Portrait based on Lola Montez by Josef Heigel<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://www.wobastic.com/blog/2017-3-24-lolamontez.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="593" height="640" src="https://www.wobastic.com/blog/2017-3-24-lolamontez.jpg" width="474" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Now that I can do texture mapping and transparency gradients, it's now so much easier and so much more fun to make more realistic objects in Omber, my vector drawing tool.</td></tr>
</tbody></table>
<br />Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-54136390945113335892017-03-03T17:30:00.000-08:002017-08-07T17:45:10.155-07:00Transparency is Working in OmberI have such a huge long list of features that I want to add to Omber that it's difficult to choose what to implement next. What I do is that I try to design all the art needed for Omber in Omber itself. If I encounter a missing feature that I need for that art, I can then prioritize working on that feature. The current feature that I'm working on is support for transparency and alpha channels.<br /><br />Android icons are supposed to have a drop-shadow behind them. A drop-shadow is a semi-transparent shadow that blurs to fully transparent at the edges. When I was making Android icons for Android, I found no way to add a drop-shadow to my icons using Omber, so the current Android icons don't have that visual effect in them. Although many computer art programs have a special drop-shadow tool, I find that drop-shadow tools to be fairly limited in functionality. Since Omber is designed around advanced gradients, it could support drop-shadows if I simply added support for transparency in its gradients. Unlike a more basic drop-shadow tool, you have full control over the shape, size, and opacity of the drop-shadows you create. So for the past few weeks, I've been adding support for transparency to Omber.<br /><br />Today, I've finally gotten basic transparency support working, and it seems to work well. I'm hoping to be able to release it for public use in a week. While implementing transparency, I also had to re-architect large parts of the Omber's internals. With this re-architecting, I should be able to quickly add support for other features like textured shapes as well, so that will be the next feature I add after transparency.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-38605800072974497822017-03-03T13:45:00.000-08:002017-08-13T13:46:51.783-07:00Omber Transparency<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://www.wobastic.com/blog/2017-3-3-transparency.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="648" data-original-width="738" height="560" src="https://www.wobastic.com/blog/2017-3-3-transparency.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">I have transparency working in Omber! Look at that drop-shadow and the faded edge highlights at the top and bottom of the icon.</td></tr>
</tbody></table>
<br />Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-36245530912019987602016-06-30T15:34:00.000-07:002017-08-07T17:45:30.302-07:00New Gradient Engine for OmberI've been dreading it for a while, but I've come to realize that I couldn't hide from the problem any longer. I was able to produce some great art using <a href="http://www.wobastic.com/omber/">Omber</a>, but the underlying gradient engine couldn't produce images with a high enough quality at a fast enough speed for Omber to be usable for real artists. The gradient engine would need to be rewritten.<br /><br />After many months of looking over the gradients produced by Omber and brainstorming possible fixes, I felt like I was coming closer to a possible solution, but it seemed really tricky to implement. And it was very tricky to implement. I had to pull down pages and pages of computational geometry resources and I had study them and restudy them. Many of the algorithms I needed were missing key implementation details and had delicate behaviors that had to be gently teased and massaged to customize them to my needs. Even when I had the core pieces of the solution put together, I had to spend weeks dealing with brutal corner cases.<br /><br />But it's done now. I was able to squash a bunch of other performance bugs while I was digging through the code too. The results should speak for themselves. Omber is now super-fast at generating complex gradients. Even when loading in complex drawings for the first time, it can converge to a usable image in only a few seconds. The resulting gradients are not only faster but exhibit much fewer artifacts than the previous algorithm did.<br /><br />Being a new algorithm, I will likely need a few months to work out all the kinks and learn how to handle its new behavior characteristics. But the new engine is now much more impressive than before. It can generate much higher quality gradients in a fraction of the amount of time needed by the previous engine. It will be a strong base on which I can add some exciting new features.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-75652150522732603522016-06-02T17:08:00.000-07:002017-08-07T17:46:10.871-07:00Omber now available for AndroidOmber is <a href="https://play.google.com/store/apps/details?id=com.wobastic.omber">now available for Android</a>!<br /><br />From the beginning, I designed Omber for use with touch. That explains its strange looking interface with its large buttons, large shape handles, and strange navigation elements right on the front screen. Unfortunately, once its performance was always a little too slow to use on tablets, so it was never too useful. Omber sometimes chugs a bit even on my desktop machine, let alone an underpowered tablet. It can be used on touch-screen Windows machines but those never really took off.<br /><br /><div>
After I made Omber multithreaded a couple of weeks ago, I discovered that Omber now had reasonable performance on Android tablets. There are still places where it's slow, notably when loading images, but during normal vector drawing, it's fairly responsive. That was great because I already had a touch-interface ready to go. So I've now been tweaking the touch interface to behave even better on tablets, and the result it pretty good now. <br /><br />Omber is especially good for doing vector work with your fingers. A lot of other tablet vector tools like Adobe Illustrator Draw, seem pretty clumsy if you don't use a stylus. People's fingers are so fat that they keep blocking out the part of the screen that you're working on and it's hard to do precise work. Omber uses slightly different conventions to get around this problem. <br /><ol>
<li>Handles are always placed below the thing you are trying to manipulate. That means you can use your finger to drag your handle without having to put your finger on the thing you're trying to modify. This means that you can actually see what you're modifying as your change it. </li>
<li>Putting your finger on the screen previews the action, lifting your finger performs the action. When you're drawing shapes, you want to position your points precisely, but when you put your finger down, it's hard to know where the point will appear exactly. With a mouse, this isn't a problem because you can see your mouse pointer, but that isn't the case with a finger. In Omber, when you put your finger down on the screen, Omber will show you where the point will appear. That means you can move your finger around to adjust the position of the point to be exactly where you want. The point will only be placed when you find the right spot and lift your finger. </li>
<li>In art, multi-touch actions can sometimes cause confusion because the programs have a hard time interpreting certain gestures. When you're making art, you want your program to behave consistently. You don't want it to be confused as to whether you're scrolling the screen or dragging an object. In Omber, zooming and scrolling have their own buttons, so there's no issues of you making one gesture and the computer doing the wrong thing.</li>
</ol>
<ol style="background-color: #fffffa; color: #2c3635; font-family: Verdana, sans-serif; font-size: 13px;">
</ol>
</div>
Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-14469485250857680792016-05-22T13:44:00.000-07:002017-08-13T13:45:01.043-07:00Recreating a Human Face with Omber<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://www.wobastic.com/blog/2016-5-22-face.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="250" data-original-width="800" height="198" src="https://www.wobastic.com/blog/2016-5-22-face.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">I recreated a photograph of a face using Omber, my vector drawing tool specializing in advanced gradients and soft shading. It took about three hours to do. </td></tr>
</tbody></table>
<br />Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-7888491490158696112016-05-08T14:50:00.000-07:002017-08-07T17:47:26.508-07:00Making Animation Templates for Animation CompanionI'm making some more animation templates for <a href="http://www.wobastic.com/animationcompanion/">Animation Companion</a>. I could just rotoscope myself doing the motions, but it's always a hassle pulling out a tripod and setting that up. Instead, I'm using old public domain motion studies by <a href="https://en.wikipedia.org/wiki/Eadweard_Muybridge">Eadward Muybridge</a> as a starting point. I'm getting better at cutting up the different frames, normalizing them, aligning them, and correcting the animations to be smoother. There's still a lot of room for improvement, but they are sufficient to serve as a base for creating the general motion.<br />
<br />
For an amateur artist like me, having a template that I can use as a base for my own art is really useful. I don't spend a lot of time watching how people move, so it would normally take me forever to figure out how to make a simple walk animation. I don't normally think about how my elbow bends when I walk. I would have to walk around lots and figure out the positions of my own limbs and then put that into an animation and try to work out the timing. I would then have to fiddle things for a long time to get things smooth. With a template, I can just drop things in approximately the same places as on the template and go.<br />
<br />
Templates, of course, are only meant to serve as a simple guide for the artist. Different characters have different shapes and oddly shaped limbs, so an artist will always have to adapt things to their own characters. My templates are also just simple stick figures, which are suitable for getting the general motion right in, say, a computer game. In hand-drawn animation, different muscles will have to flex in each frame and clothing will move, which require more detailed templates and a lot more artistic judgement from the animator. Of course, at the professional level, these sorts of generic templates aren't useful at all because animators will purposely exaggerate all the motions and each character will have a slightly different gait that reflects their personalities. <br />
<br />
Still for any artist who rarely does any animation, having some templates is a real time-saver, which is why I'm making more of them for Animation Companion.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0tag:blogger.com,1999:blog-7472151300182774635.post-92203731008081709132016-05-03T21:42:00.000-07:002017-08-08T11:29:38.814-07:00Animation Companion OnlineI've ported my <a href="http://www.wobastic.com/animationcompanion/">Animation Companion program</a> for <a href="http://www.wobastic.com/animationcompanion/online/">the web</a>, so it now runs in your web browser. So now you can make animations in your web browser without having to download any software. It should work on the Mac and on Linux too, though I haven't tried it there yet. Due to the limitations of web browsers, I had to leave out some features like having the animations automatically update themselves when you change the underlying images (you have to manually replace the images with updated versions), support for PSD imports, and certain types of exports. The interface for saving files is also a little clunky (and might not work at all in Safari). Overall though, it's really close to the desktop version. So if you need to quickly throw together a sprite animation, you can just do it in your web browser now. There's no ads, there's no registration, and all the data stays entirely on your computer. It's just a simple, straight-forward animation app that runs in your browser.<br />
<br />
<b>Background</b><br />
<br />
For the past few years, I've been developing all my software using HTML5 for the user interface. The hope was that I would eventually be able to use the same code for both desktop applications and web applications. Unfortunately, there aren't any fully featured embedded web browsers that I could use for making desktop versions of my applications.<br />
<br />
I developed Animation Companion as a desktop application. Even though I still used HTML5 for the UI, I was only able to use some of the UI features due to the limited functionality of the embedded web browser engine I was using. I was eventually hoping to port it to the web too, but I wanted to wait for a full-featured embedded browser to arrive, then I could rewrite the UI to use the newer features. <br />
<br />
Unfortunately, there still isn't a full-featured embedded browser available to use, and I haven't had time to port one over myself, but since the UI code for Animation Companion was in HTML5 anyway, I thought I would take advantage of that fact and do that port. Making user interfaces in HTML5 is actually somewhat hard to do, so I might as well get some of the benefits of all that painful coding and make a web version available.Wobastichttp://www.blogger.com/profile/16745022680395259530noreply@blogger.com0