Kite Compositor 1.9.5 macOS File size: 40 MB Kite Compositor - Animation and prototyping for macOS and iOS Kite Compositor lets you visually drag-and-drop layers to build complex interfaces on a WYSIWYG canvas. Add animations and tune them with the integrated timeline. The diagonals of a kite form 4 congruent triangles. Tags: Question 4. The diagonals in a kite. Are perpendicular.
| Glenn |
This is a beta 1.5a version of the KiteModeler program. If you find errors in the program or would like to suggest improvements, please send an e-mail to nancy.r.hall@nasa.gov.
Due to IT security concerns, many users are currently experiencing problems running NASA Glenn educational applets. The applets are slowly being updated, but it is a lengthy process. If you are familiar with Java Runtime Environments (JRE), you may want to try downloading the applet and running it on an Integrated Development Environment (IDE) such as Netbeans or Eclipse. The following are tutorials for running Java applets on either IDE:
Netbeans
Eclipse
This page contains an interactive Java applet to explore the various factors which affect the design and flight of several kites. All of the information presented by the applet are available within the Beginner's Guide to Aerodynamics. You should start with the slide describing the kite design.
Other problems may occur while running the applet due to it being outdated. Until it is updated, here are some links to help with the understanding of the topic. understanding of a kite. For a simpler understanding, HERE is a kite-making activity. For a more complex understanding, HERE is a report on the aerodynamics of a kite.
KiteModeler
With this software you can study the physics and math which describe the flight of a kite. You can choose from several types of kites and change the shape, size, and materials to produce your own design. You can change the values of different variables which affect the design and immediately see the new flight characteristics. With this version of the program, you can even test how your kite would fly on Mars, or off the top of a mountain. The program tells you if your design is stable or not and also computes a prediction of how high your kite will fly.
If you are an experienced user, you can use another version of KiteModeler which does not include this tutorial. If you experience difficulties when using the sliders to change variables, simply click away from the slider and then back to it. If the arrows on the end of the sliders disappear, click in the areas where the left and right arrow images should appear, and they should reappear. To return to the original default conditions, click the Set button on the view window to the left.
If you see only a grey box at the top of this page, be sure that Java is enabled in your browser. If Java is enabled, and you are using the Windows XP operating system, you need to get a newer version of Java. Go to this link: http://www.java.com/en/index.jsp, try the 'Download It Now' button, and then select 'Yes' when the download box from Sun pops up.
SCREEN LAYOUT
The program screen is divided into three main parts:
- On the left of the screen is a graphics window in which you can display a drawing of the kite you are designing, trimming, or flying. Details are given in GRAPHICS.
- On the right of the screen at the bottom is the control and output panel. You can select the 'Design', 'Trim','Fly', or 'Output' mode by clicking on the buttons at the top of the panel. The selected mode is indicated by a yellow button. Depending on your choice, different input panels appear at the top of the program and different output variables are shown at the bottom. Output boxes are shown with a black background, input boxes with a white background. Details of the INPUT and OUTPUT variables are given below. If you click the 'Output', a large text window is displayed at the upper right. Output can be saved to this window by using the Print button on the view window at the lower left.
- On the right of the screen at the top are the input panels. To change the value of an input variable, simply move the slider. Or click on the input box, select and replace the old value, and hit Enter to send the new value to the program. Some input panels contain menu buttons. To operate a menu button, click on the arrow to the right and make your selection from the drop menu.
GRAPHICS
The View window for the kite is shown on the left of the program screen. You can change the size of the image by using the slider at the far left. Just click and drag on the black bar to make the image larger or smaller. If your kite design or trim is, unstable a red and yellow banner appears over the graphics. You should then change either a Shape input or a Trim input until the banner disappears.
You can perform the calculations in either Imperial (English) units or Metric units by clicking on the button in the upper left of the view window. Imperial units are the default.
You can move the kite within the view window by moving your cursor into the window, holding down the left mouse button, and dragging the kite to a new location. If you lose the kite, click on the Find button above the slider.
There are three views available to the user; Front, Side, and Field, as indicated by the buttons at the top of the window. The selected button is indicated by a yellow background. By default, the Front view is shown in Design Mode, the Side view in Trim Mode, and the Field view in Fly Mode. However, you can override the default by using the 'Select View->' button. Click on this button, then click on the desired view. You can use any view at any time in the design, trim, and flight sequence as long as the 'Select View->' button is yellow. To return to the default views, just click on the 'Select View->' button again.
- Front shows the kite as viewed looking perpendicular to the surface. This view is the default during the 'Design' of your kite. The geometric input parameters are shown to the right and below the kite drawing. Surfaces are shown as white areas, while the frame is shown as black lines. The center of gravity is shown as a red dot and the center of pressure as a green dot. The tail of the kite is given as a green line at the bottom.
- Side shows the kite as viewed looking along the surface. This view is the default during the 'Trim' phase of your kite. The wind is blowing over the kite from left to right and the magnitude of the wind is shown by a small green arrow at the bottom. The kite surface is again shown as a white area, and the tail as a cyan line at the right. The length of the tail (T) is set on the trim input panel. The kite surface is inclined to the horizontal at the angle of attack of the kite. The bridle of the kite is given by the white line below the kite surface. The bridle length (B) is set on the Trim input panel. The control line is shown by a magenta line from the lower left. The control line is attached to the bridle at the bridle point (knot) shown as a white dot. The distance of the knot from the base of the kite is denoted by (K) and is shown as a yellow line below the bridle. This distance is also set on the trim input panel. This drawing changes as you trim the kite by changing the length of the bridle or the location of the knot. The lift, drag, and weight forces that are acting on the kite during flight are displayed as vectors (arrows) with the lengths proportional to one another. You can change the length of all the force vectors by using the 'Scale' slider at the bottom of the window.
- Field shows the kite flying with the control line running from you to the kite. This view is recommended during the 'Flight' phase of your kite. As before, the wind blows from left to right over the kite. A white line shows the length and shape of the control line. (Notice that the line sags under its own weight and may even touch the ground.) The kite flies at some distance 'X' from your feet and at some height 'Y' above the ground. The values of these variables are shown on the output panel. If you let out line, the kite may leave the view window. You can change the size of the display by using the 'Scale' slide at the bottom.
OUTPUT VARIABLES
Output variables are displayed at the top right of the program screen. In most cases, these output variables are calculated by the computer program using mathematical equations. We have created hyperlinks to other web pages which describe the exact equations used in this program. Just click on the variable listed below to view these equations.
If the 'Design' or 'Trim' mode is chosen, the following variables are displayed. The Weight of the kite is calculated based on the input geometry and the materials selected. The weight is displayed in ounces or gram-weights and does not include the weight of the control line. The aerodynamic Lift and Drag are computed by the program and displayed in ounces or gram-weights. The Tension in the line is displayed in ounces or grams. This is computed based on the forces on the kite and the weight of the line. The Center of Gravity (Cg) and Center of Pressure (Cp) are the average location of the weight and aerodynamics forces, respectively. They are computed by the program in inches or centimeters from the bottom of the kite as shown in the 'Front' view. The Surface Area of all the material and the length of all the components of the Frame needed to make your kite are computed based on your geometric input and the type of kite selected. These values are used in the computation of the weight and Cg. The trimmed Angle of attack is displayed in degrees and may be either input by the user or calculated by the program. If the value is calculated by the program, the output numerals are green and the value is calculated to eliminate any torque on the kite. If the value is input, the output numerals are yellow to warn the user that the resulting flight conditions may be unstable. The program calculates the net Torque on the kite about the bridle point. In stable flight the value is zero (in this program it is computed to a very small but non-zero number). The units for torque are ounces-inch. Using the 'Side' view of the kite, a positive torque is clockwise and a negative torque is counter-clockwise about the bridle point.
If the 'Fly' mode is selected, four additional variables are displayed. The Range-X is the horizontal distance of the kite from your location during flight. This value is related to the Height-Y and is also displayed on the 'Field' view. The Height-Y is the predicted altitude at which your kite flies. This value depends on the flight characteristics of the kite, the wind velocity, the atmospheric conditions, and the amount of control line that you use. The value is computed in feet or meters and is shown on the 'Field' view. The atmospheric pressure is displayed in pounds per square inch (psi) or or kilo-Pascals (kPa) and depends on the altitude and planet chosen on the input panel. The atmospheric temperature is also displayed in degrees Fahrenheit (F) or Celsius (C).
INPUT VARIABLES
Input variables are displayed on input panels at the upper right of the screen. There are four sets of input variables which depend on the program mode.
- In the 'Design' mode, the default input panel is the Shape panel. On the Shape panel you first select the type of kite to be designed by using the drop menu at the upper right. You can choose from five basic designs. Depending on the design, you then vary the height, H1 and H2, and width parameters, W1 and W2, to alter the shape of your kite. The 'Front' view shows the meaning of these variables and also indicates if your design is unstable. There are default geometries for each kite based on the width W1. If you change the type of kite, you will get the new kite default with the current value of W1 held constant. Pushing the Reset button on the view panel will return the default geometry with W1 = 10 inches.
- In the 'Design' mode, you can also change the material properties of all of the parts of your kite. Push the white 'Material' button to display the Material input panel. On the Material panel you change the material used for the Surfaces, Frame, Tail, and control Line by using the drop menu at the far right of each part. Each material has a characteristic 'density' which is displayed in the black output box. This density is used to compute the weight and Cg of your kite and the sag of the control line. For each part you can Specify your own material density by making this selection on the drop menu. The black output box then becomes a white input box and you can enter your own data as described above. You can use the Max Dimension input box to change the size of your kite. The max dimension is used on the height, width, and bridle input sliders and boxes. You can use this parameter to design very large or very small kites.
- In the 'Trim' mode, the default input panel is the Trim panel. On the Trim panel you can select to have the program compute the trimmed angle of attack or your can input your own flight angle of attack by using the drop menu at the upper right. If you decide to input your angle of attack, you then input the Angle in degrees. The 'Side' view shows the inclination of your kite relative to the wind. The most important variables used to trim your kite are the Bridle and Knot variables. Bridle gives the total length of the bridle string in inches or centimeters. Knot gives the length along the bridle string from the base of the kite to the attachment of the control line. These two variables affect the trim angle of the kite which affects the magnitude of the aerodynamic forces. Because the kite pivots about the knot in flight, the location of the knot has a large effect on the stability of the kite. The length of the Tail also affects stability and trim by shifting the Cg.
- In the 'Fly' mode, you may choose to fly your kite on Earth or on Mars by using the menu button at the right. The gravitational constant on Mars is different than the earth, so you will notice that the weight of your kite changes. (The material densities and payload weight are still based on 'earth' values). You can set the altitude in feet or meters which changes the atmospheric pressure and temperature using an atmospheric model. You can set the Wind speed in feet or meters per second and the length of the control Line in feet or meters. The weight of the control line is calculated and causes the line to sag as shown in the 'Field' view. Eventually a point is reached where the line touches the ground at your feet. The program then ignores any additional line input that you make. You can also attach a payload to your kite at the center of gravity using the input box and slider at the bottom of the panel.
NEW FEATURES
The Educational Programs Office will continue to improve and update KiteModeler based on user input. Changes from previous versions of the program include:
- On 28 Aug 12, version 1.5a was released. This version includes the max dimension variable on the Materials input panel. This allows for the design of very large kites, as requested by users of the program. We have also re-arranged the input panels and the color of some buttons to be consistent with other simulators at the Beginner's Guide to Aeronautics.
- On 14 May 12, version 1.4c was released. This version includes some minor fixups on the displays and labels.
- On 3 Nov 04, version 1.4b was released. This version includes the 'Tumbleweed' kite design which was requested by NASA Langley in support of a study of a passive Mars rover design. The layout of the program was modified and the planet, altitude, and payload inputs were added.
- On 25 Sep 03, version 1.3b was released. This version includes the 'Twin Trap' kite design which was requested for a NASA Connect broadcast concerning the Centennial of Flight.
- On 1 Oct 02, version 1.3 was released. This version includes the output text field at the bottom of the program, the default geometries for all the kites, the Reset feature, the line tension output, and a fixed bug in the line weight.
- On 29 July 02, version 1.2 was released. This version includes English and Metric units and the Twin-Trap kite geometry.
- On 28 Mar 02, version 1.1 was released.
Enjoy!
Activities:Guided Tours
- KiteModeler
- Forces on a Kite
Navigation..
- Credits for KiteModeler
- Beginner's Guide to Kites
- Beginner's Guide to Aeronautics
Recent years have ushered in several new tools for design and animation; tightening the feedback loop between working and visualizing the results is crucial for any type of visual artist. Several months ago, a new macOS app landed called Kite Compositor, and I can confidently say that it has profoundly changed how I design and implement animations on iOS. We’ll take a brief look at what Kite does and why I recommend it without hesitation to anyone serious about animation work on macOS, iOS, and tvOS.
First, I should get this out of the way: in no way am I personally or professionally associated with Kite Compositor or its creator, Joe Rhodes. I haven’t been paid or otherwise compensated to endorse this product. I genuinely believe in the product and have already experienced the benefits of using it to ship actual production code.1 With that in mind, consider this my professional analysis of Kite Compositor after spending a few months using it almost daily.
Second, this post isn’t meant to serve as a tutorial for how to use Kite; the website goes into detail about all of its features. The documentation is very thorough as well and should be skimmed through by first-timers to get a feel for all of its features. (Additionally, Kite is actually rather easy to use once you’re aware of most of its key panes and inspectors.) No, this post lists the reasons why I strongly recommend any serious animation designer or engineer add Kite to their toolkit, especially those who are working on apps for Apple platforms.
So, what is Kite Compositor? Like I mentioned above, it’s a (native) macOS app that resembles Sketch or After Effects in some ways. In short, Kite is a visual animation-building application that creates Core Animation-compliant animations that can run on macOS and iOS (and tvOS, by extension). The power of Kite lies in its easy-to-use GUI that still manages to capture practically every capability Core Animation has to offer. Coupled with a live animation timeline at the bottom, visualizing and scrubbing back and forth through animations in real-time couldn’t be easier.
Kite also has rich support for actions and scripting using vanilla JavaScript, so dynamic animations and full prototypes can be crafted with it relatively easily. Kite can export both Objective-C and Swift 4 code for any part of the canvas, which is immensely powerful. Last, there is a free Kite Compositor companion iOS app for playing back compositions right on your device, allowing for easy on-device testing.
At $99, Kite isn’t exactly cheap, but neither is it prohibitively expensive. In addition, a free trial period lets you take it for a spin before buying it, which is always a plus. But keep in mind that Kite is a very feature-rich, complex application, and I’m of the opinion that its capabilities and product offerings more than justify such a price.
Kite is a well-designed app. It’s very clear that it was meant to be a first-class citizen in the macOS app ecosystem. The UI should feel very familiar to anyone who has used other professional or productivity apps such as Keynote. Here are some of the features that stand out to me:
- Many elements in the UI are draggable, and input areas that accept the same type of element allow you to simply drop them in
- Animations can be dragged around in the timeline, but they can also be dragged to a different layer to reparent them
- Tree structure disclosure indicators function the same as with any other macOS app: option-clicking them will recursively expand or collapse the subtree, which is very helpful when trying to hide or show a bunch of items at once
- The menus are very feature-rich, so it can be useful to click around to explore features and capabilities you may not have readily noticed in the UI
- The left, bottom, and right panes can be toggled on or off, just like in Xcode, to quickly adjust visual real estate depending on the task at hand
- There are many power user features; left- or right-clicking just about anything reveals additional capabilities
The single best selling point for Kite is the fact that it is built upon Core Animation, the very rendering and animation foundation that powers much of macOS and all of iOS, tvOS, and watchOS. As a result, WYSIRWYG2. Being able to rely on the output of your design tool being 99% accurate3 to what your users will see on device is huge. This is the principle non-starter with other animation tools that claim to export app-ready code: they simply can’t guarantee that what you see at design time will match what you see at run time.
To accomplish this, Kite uses layers for everything. Almost every primitive you have to work with in Kite is a CALayer
class or one of its subclasses. This can be a bit confusing at first; there is no image layer or mask layer. The Basic layer object does much of the heavy lifting—setting its contents to an image or toggling its masking properties gives you the effect of an image layer or masking layer. Beyond the basic layer type, you have text, gradient, vector shape, replicator, emitter, video, tile, scroll, and transform layers to work with. Page layers are used to embed other pages from your composition directly into the layer hierarchy. And all of these layer types map directly to specific layer classes that Core Animation offers, so they should already be very familiar to anyone who has worked with the Core Animation APIs.
Kite takes things a step further by mirroring Core Animation’s APIs as deeply as is most likely possible. For every layer property that you can work with programmatically, Kite offers a corresponding visual inspector to adjust that property. Changes to any of these properties are, of course, reflected immediately in the canvas. This level of depth is what sets Kite apart as a professional animation tool for macOS and iOS. Other tools may offer only surface level properties to adjust or tweak; after all, they’re usually meant to create cross-platform animations, so they can’t go as deep on customization as a Core Animation-specific tool can.
Of course, it wouldn’t be much of a animation tool if you couldn’t animate these properties. Kite offers convenient popups when clicking on practically any label in the Inspector. From there, you can create an animation for that property or look up its API documentation directly in Kite. The ability to very quickly add an animation to the timeline related to properties you’re tweaking in the Inspector is a very useful power user feature.
Kite Compositor 1 500
I mentioned previously that 99% of what Kite displays is reflected at run time on the device. There are a handful of properties that Kite lists in the Inspector that are macOS-only. Currently, there’s no way to create a platform-specific composition, as all Kite compositions are meant to run on macOS or iOS. So even though you might see these properties while building your composition using Kite, they won’t show up on iOS. Most notable are the compositing, content, and background filter properties, which are only supported on macOS.4 Setting up Core Image filters works just fine in Kite, but they’ll be discarded when generating iOS code.
Still, using these properties can be helpful. When replicating the effect of UIVisualEffectView
, for example, you can use a combination of background filters to mimic the blurring and color filters that iOS uses for many of its UI components nowadays. Because there is no (public) layer for rendering visual effects, you can use filters to help add visual fidelity to any prototyping you’re doing. Additionally, because Kite can export compositions to videos or GIFs, you should use whatever filters you need to simulate some of the more complex visuals that UIKit manages internally.
Some people learn best by seeing examples of a product at work, and Kite does a fantastic job at this. Selecting File > New From Template… brings up a new composition template chooser. At the bottom is an Examples section with many non-trivial animation examples. Most of these demonstrate how Kite can reproduce several of Apple’s most iconic and most impressive UI animations across a variety of platforms. It’s fairly easy to click around one of these compositions to see how most of Kite’s features work; a lot of my initial experimentation with Kite involved looking at these examples.
Kite also has a page listing tons of video tutorials, so there’s no shortage of examples to reference to help get started.
One of the best features Kite Compositor has to offer is one-click code generation for any layer hierarchy. Kite is able to generate Objective-C or Swift code for iOS or macOS.
Kite Compositor 1 550
What code does Kite Compositor generate? Everything from creating the layer hierarchy to configuring it to animating it. Basically, everything that it can translate to code, it appears to do so. This extends to some actions, as well, such a “mouse down/up” events. And what I said before about Kite being layer-only doesn’t apply to the root layer when it comes to code generation. It will generate a UIView
(or NSView
for macOS) for the root layer, which is nice.
One thing to keep in mind is that the layer you have actively selected in the Layer List Pane will be the root layer when you generate code. This can be quite convenient when you want to generate code for just a portion of your composition. As long as the relevant layers and animations are all contained within the selected root layer, it will be included in the generated code.
So how is the code? Well, it’s generated code, so it can’t be quite as good as hand-written code. Still, Kite uses layer names for variables, and the generated code is pretty easy to follow. Here’s a gist of the watchOS example composition generated by Kite.
Kite Compositor 1 5e
My typical workflow involves building and tweaking my animations in Kite entirely. Once I’m at a place where I want to hand off animation code to engineers, I’ll start with the code Kite generates for me. From there, it’s pretty trivial to clean it up or otherwise format it the way you want. On occasion, I have to transpose the work I’ve strictly done with layers to UIView
s instead, which isn’t too bad.
Finally, as mentioned before, a few select features are available on one platform but not others. Kite won’t generate code for these features depending on the platform you select. For example, none of the layer filter properties or animations will have code generated for iOS.
Before my official transition from iOS engineering to product design,5 most of my job was either working with UIKit or Core Animation; in other words, though I was an engineer, my job was extremely visual, as it is for many mobile app engineers. And yet I spent all my time in Xcode. While Interface Builder can be a great tool for building out UI, it has its limitations, and I often found myself fighting against it. Furthermore, there was no good tool for building animations. The process of coding, building, running, observing, and tweaking was orders of magnitude slower than it should be for such a critically visual task.6
At some point along the process, I realized that I spent more time being frustrated with my development environment than I was solving problems or being creative. Eventually, I knew I had to shift to something more visual where I could see the results of my ideas and tinkering immediately. And so I ended up at Lyft as a UX Prototyper on the Product Design team where I have been significantly happier and more productive than I ever was as an engineer.7
This is why tools like Kite are so important: by offering a well-designed, visual, native app experience for building animations that run on the same foundation—Core Animation—that powers iOS as well, engineers are freed from the tedium of lots of boiler plate code just to start visualizing their work. Perhaps more importantly, an inherently-visual task such as animation is poorly-suited for pure code. The time it takes to translate an idea in one’s head to all the proper code needed to pull it off is enormous for non-trivial animations. Often, I would forgot ideas or iterations I wanted to try because of all the back-and-forth of debugging unexpected results.
You would never expect a visual designer to write SVG code in a text editor to come up with a design. Animation is similar, except that its success is often tied to the particular technical constraints and capabilities of the platform it runs on. Necessarily, some degree of engineering effort is required to fully execute an animation idea. A tool such as Kite Compositor that offers both significant ease-of-use via a good UI and access to technical deep-diving into more complex Core Animation properties makes crafting animation so much better.
I can’t recommend it highly enough.
With some tweaking, which I’ll go over later on. Still, the vast majority of the work is handled by Kite automatically. ↩
What You See Is Really What You Get. ↩
There are always exceptions, usually platform-specific. I’ll mention the ones that are probably the most important to keep in mind. ↩
Don’t even get me started on how frustrating it is that Apple still refuses to open up support for these properties on iOS… ↩
I still spend a considerable amount of time working with iOS engineers and Core Animation, so I consider myself something of an iOS engineer-product designer hybrid. ↩
This is one area where web has native app development crushed; instantaneous updates and live tweaking in the browser make experimentation and iteration extremely fast. ↩
To be clear, this isn’t strictly a criticism of engineering versus design. A good part of my need to change directions a bit was due to personal proclivity, not an inherent flaw in how software engineering works currently. ↩