Recently John Fultz announced GitLink as open source on GitHub. He also mentioned the desire to offer more Wolfram related open source to the community. Draw was not mentioned by John but readers of his post followed the GitHub link and discovered the Draw repository. Naturally questions followed so here we are with an introduction of Draw, the latest open source contribution to the community.
Draw is a vector drawing application. Many of the technical illustrations found in the Wolfram Language documentation were created using it. The release of Draw is to promote the advantages of using the Wolfram Language for software development.
Draw was a personal project that grew from an idea to develop a simple tool to automate the drawing of flowcharts. This simple tool expanded in response to the need of functionality for solving specific challenges required by various illustrations. The Wolfram Language was very instrumental in helping Draw evolve during this process.
Some of the more prominent features of Draw include:
The gallery of examples below demonstrate the capabilities of Draw:
A look inside the application reveals an interface divided into four distinct sections:
An example of Draw being used to work on a flowchart:
The Circuit, Mechanical and 3D libraries:
The adjustable gear shape:
The shape array:
Hope this brief introduction is enough to inspire you to download the Draw notebook from this GitHub link. Start creating illustrations or explore the Wolfram Language code to discover how the application works. Support is available by clicking the blue help button for topics such as the basics, features, interaction, tools, examples and tips. Tooltips appear for all buttons detailing their behavior. Remember this is open source software and comes with no guarantee. That being said, feel free to kick the tires and take it for a spin.
Draw works best when used in Mathematica 11 but most functionality is supported by Mathematica 10.4.1.
I use it pretty much everyday to create documentation and marketing illustrations so I add functionality as needed.
Thanks. I like this drawing tool. It allows me to stay in the Wolfram environment when writing complex documents. Hopefully, you continue to maintain it.
Evaluate Get["<yourDirectory>/wldraw-main/WLDrawPackage.wl"] in an empty notebook.
I have tried to run the package from Wolfram Desktop, but I couldn't make it to work. All I did was to download the zip and the run DrawTools.wl.
Could you give us a getting started lines?
Draw has been updated and renamed WLDraw. It can be found here:
Thank you! Now I have it. Amazing tool, sure it will help me to develop my contents.
Thanks a lot, Tim.
The tool you developed is amazing, it sure will help my contents too.
This application seems amazing, indeed. However, I've tried to download it from the git repository, but the file isn't there.
Can someone help me out?
Provide another link to the file or any kind of fix to the issue.
I would be greatly thankful for that, since this application can help me a lot in my dissertation for making mechanical schemes and so on.
Thank you in advance.
Szabolcs, glad you like it.
The canvas size is set by the global variable $dtCanvasSize. It is currently set to 750 but you can change it. However using a value other than 750 will cause the renderings in Draw to not match what is copied to the clipboard. Line weights, arrow sizes, etc. will be affected. Changing it to 700 would shrink it a little and not be too noticeable.
The GitHub notebook now displays cell brackets so you can see when draw is evaluating.
This is very nice. Thank you for sharing it. I have two small suggestions after opening this version for the firs time:
The window does not fit on my screen vertically. I use a MacBook Pro, i.e. my screen resolution is 1440 by 900. But the menu bar also takes up vertical space, and so can the dock (although personally I have that hidden). I can increase the screen resolution in which case Draw becomes usable (but not resizable).
It takes quite a few seconds for Draw to start up. Since the notebook has the cell brackets hidden, there is no very clear indication that something is happening at all. (Unless I look at "Running..." in the title bar.) It would be nice to put a PrintTemporary@ProgressIndicator[Appearance -> "Necklace"]; or similar to the beginning of the init code, to reassure users that something is indeed happening.
PrintTemporary@ProgressIndicator[Appearance -> "Necklace"];
Draw has been updated with new features and bug fixes. Download from this GitHub link. Short list of features and bug fixes include:
See GitHub commit for full list of changes.
Super great! Vey useful.
- you have earned "Featured Contributor" badge, congratulations !
This is a great post and it has been selected for the curated Staff Picks group. Your profile is now distinguished by a "Featured Contributor" badge and displayed on the "Featured Contributor" board.
This is fantastic! It is a serious upgrade to drawing cartoons programmatically using Graphics.