Proof 5 (P5) Overview

P5 is an exciting new version of 2D Proof Animation that builds on the strengths of its predecessor, P4, which we are no longer distributing.  P5 offers all the functionality of P4 and includes some new goodies, such as the ability to easily map imported bitmap images onto Proof geometry.  If you're animating air traffic and would like to superimpose moving aircraft on a map of the region over which the planes are flying, P5's "Pictures" provide a convenient solution.

P5 is built on Microsoft's Direct3D platform (using two of the three dimensions) and runs in a resizable window.  P4 was built on Microsoft's older 2D interface, DirectDraw and ran full-screen only, making transitions back and forth between Proof and other applications somewhat jarring.  P5's ability to run in a window allows it to work very harmoniously with other applications.

The stand-alone version of P5 runs as a post-processed, file-driven application.  The library (DLL) version of P5 works concurrently with running applications.  Concurrent P5 is ideally suited for running in concert with simulation applications on computers that contain two or more cores.  The stand-alone version of P5 is multi-core aware, so a considerable portion of its workload can be spread across multiple processors.

P5 Licensing

Existing commercial customers who licensed P4 in 2007 or 2008 can upgrade to P5 free-of-charge.  Commercial customers who licensed P4 prior to 2007 must pay an upgrade fee.  Click here to obtain commercial update pricing and here to obtain government update pricing.

P5 Updates

The Latest Version of P5

Note: On July 21, 2011, Wolverine issued a new baseline release of all of its products.  The new baseline release incorporates all prior updates to P5.  To get the latest version of P5, you must first install the July 21, 2011 baseline release (if you haven't already done so) and then apply the latest update provided below. 

For details on how our updates work, click here.  To install the latest baseline edition, click here.

Release PR216 of P5 requires a license date of January, 2009 or later.

This update includes the following change:

SLX-style escape sequences are allowed in the text of "set userinfo" commands, e.g.,

    set 27 userinfo \R\B\URed bold underlined text

Multiple \R, \B, or \U escape sequences within the text toggle red, bold, and underlined rendering, e.g.,

    set 27 userinfo This is a line containing a \B\Rbold red\B\R keyword

To download and install Release PR216, click here.

Release AN206 of P5 includes the following change:

    An "into" option has been added to the "move" trace file command, e.g.,

    move AGV 100 into Target

The above command takes its (X,Y) destination from the current position of the object named "Target."  The target destination of the move is not updated if the object named "Target" subsequently moves.  See P5's online help for details of the move command.

Release OV174 of P5 includes two changes:

1.  Limits imposed on the student version of P5 have been revised. The new limits are as follows:

    A.  Trace files are limited to 5000 lines.

    B.  Layout file sizes are limited to 25000 bytes.

    C.  Playing time is limited to 3 minutes.

2.  Warning messages are now issued when student P5 is used to convert ATF files in excess of 5000 lines to PTF files.  (PTF files created with the student version are subject to student limits.)

Release EP114 of P5 is a purely administrative update that synchronizes the latest version of P% with other Wolverine products.

Release UN193 of P5 corrects the following problems:

1.  Problems have been fixed with acceleration of collections of attached objects that span multiple paths.

2.  A problem has been fixed with right-clicking on objects to display "userinfo."

Release UN073 of P5 corrects the "remembering" of the final screen position from the most recent run.  Previous versions stored faulty non-full-screen screen positions when a run was exited in full-screen mode.

Release PR193 of P5 incorporates the following corrections:

1.  Serious!  Canceled attempts to save a layout after time zero could result in an empty layout file being saved.  This problem has been fixed.

2.  An object that is detached from its parent object while both are on an accumulating path is now properly recorded as an accumulation successor of its parent.  Previously, this action was not take, allowing the possibility for a detached object to overrun its former parent.

Release PR023 release of P5 incorporates improvements to mouse wheel view scrolling.

Release AR203 of P5 incorporates a new warning message that is issued if you attempt to save a layout after an animation has begun.  Saving a layout under such circumstances risks saving properties originally defined in the layout.  For example, a layout may contain layout objects that are subsequently moved.  If the layout is saved after they've been moved, in the updated layout, they'll be positioned at their current locations.

Release AR143 of P5 incorporates additional  improvements for running in multi-monitor environments.

Release EB233 of P5 incorporates greatly improved support for running in multi-monitor environments. Note that window positions may change the first time you run the new release, particularly in multi-monitor environments. However, once you relocate the main window, its new location will be retained in future runs.

Release EB063 of P5 requires a license date of January, 2009 or later.  It incorporates fixes to on-the-fly decompression of compressed trace files (both ATF and PTF).

Release OV212 of P5 requires a license date of January, 2009 or later.  It incorporates improvements to security key interrogation.

Release UG172 is a purely administrative release that incorporates Wolverine's annual renewal of its download certification.

Release UL252 changes the interpretation of left clicks in Run Mode introduced in Release UN202.  To display "object info" in Run Mode, you must now press the <shift> key while left-clicking.  This change was made because several users complained of unintentionally clicking on objects.  For example, the easiest way to halt an ongoing animation is to simply left-click on the screen.  If the screen is densely packed with objects, it's hard to avoid clicking on an object; hence the requirement for pressing the <shift> key.

Release UL202 improves the computational accuracy of set object...acd command (introduced in Release UN072, described below).

Release UN202 incorporates a number of tweaks to the P5 user interface.

The "search for object" toolbar icon, formerly available only in Debug Mode, is now also available in Run Mode.

Left-clicking and right-clicking on objects are supported in both Run Mode and Debug Mode.  Left clicking causes an "object info" display to pop up, showing an object's current location, path, speed, etc.  Right clicking causes as "userinfo" (as in "set object x userinfo "my description") dialog to pop up.

Release UN072 incorporates a new trace file command:

The set object...acd command specifies accelerate-cruise-decelerate (ACD) timing for an Object moving on a Path. If the specified Object is not currently on a Path, its new speed will not take effect until it is placed on a Path.  ACD sequences are very common in the animation of material-handling systems.

The syntax of the set object…acd command is as follows:

    set [ object ] objectID acd

        speed acceleration acceleration_time cruise_time deceleration deceleration_time

Consider the following example:

    set 123 acd 5 2 3 10 -2 3

This example sets the speed of object 123 to 5, sets its acceleration to 2 for a period of 3 time units, holds its speed constant for 10 time units, and sets its deceleration to -2 for 3 time units.  The animation events necessary to carry out this sequence are internally generated by Proof.  No further user-specified commands are required.

The set object…acd command overrides default speed and acceleration values for the specified object.

End of the UN072 update.

Release AY012 incorporates a few improvements common to all Wolverine products.

Release AR062 corrects some compatibility issues with compressed trace files directly generated by SLX. 

Release AR012 is a cosmetic release intended only to synchronize P5 with the latest releases of

Release UL111 of P5 is LARGEADDRESSAWARE.  Under 32-bit versions of Windows, the 4GB hardware-defined address space normally is split 2GB-2GB between applications and Windows.  For an LAA application, up to 3GB is available for the application, and Windows' address space is cut back to 1GB.

There are risks in cutting back the size of Windows's address space.  You should not do so unless you fully appreciate the risks.  If you are willing to accept the risk, you can gain an extra gigabyte of address space for your application.  Proceed with caution!

Release AY171 includes some minor changes to improve compatibility between P5 and P3D.

Release PR221 includes the following improvement:

A synchronization issue when running in dual-core mode has been resolved.  Symptoms of this problem include accumulation of visible detritus in varying degrees.  The problem was common to all three of P5's video modes, but depending on hardware, may have been more pronounced in some modes than others.

Release PR071 includes the following improvement:

A problem with screen grabbing under Windows 7 has been fixed. This problem was unique to Windows 7.

Release AR151 includes the following improvement:

P5 now supports display of very long "set userinfo" text.  Previously, P5 used a standard Windows MessageBox, which has an undocumented limit of approximately 1024 bytes of text.  P5 now has uses a custom-built dialog box that includes vertical and horizontal scrollbars to accommodate large amounts of user info text.

Release CT140 includes the following improvements:

1.  Steps have been taken to reduce failures to recognize Wolverine security keys.  Such failures were already rare on most systems, and such henceforth be quite rare.

2.  A preliminary version of acceleration for objects on non-accumulating paths is now available.

The general rules of operation are as follows:

A.  Accelerations can be assigned only to individual objects on a non-accumulating path.  Acceleration is not yet supported as a path property or class property.  Thus, if you wish to use acceleration on a path, you must assign an acceleration to each object placed on the path.

B.  Accelerations can be positive or negative.  Positive accelerations are in the direction of increasing path distance, and negative accelerations are in the reverse direction.  Note that this convention is identical to P5's interpretation of object speeds on a path.

There are four combinations of speed and acceleration:

1.  A positive speed and a positive acceleration result in an object accelerating down a path.

2.  A positive speed and a negative acceleration result in an object moving down a path at a progressively slower speed.

3.  A negative speed and a negative acceleration result in an object backing up along a path at a progressively faster speed.

4.  A negative speed and a positive acceleration result in an object backing up along a path at a progressively slower speed.

C.  Speeds cannot reverse sign as the result of acceleration or deceleration.  If an object's speed accelerates or decelerates to zero, the object is stopped; i.e., its speed and acceleration are set to zero.

D.  Since a negative speed is required to specify backward motion along a path, if you want to apply negative acceleration to an object whose initial speed is zero, you must set its initial speed to a small negative value, e.g., -0.00001.

E.  The following examples illustrate the syntax of the "set" command for specifying accelerations of path objects:

set 99 speed 0 accel 5        move forward, accelerating

set 99 speed 10 accel -1    move forward, decelerating

set 99 speed -.0001 accel -1    move backward, accelerating from a dead stop

set 99 speed -10 accel 1    move backward, decelerating

F.  Accelerations can also be specified with specifying a speed, in which case the current speed of an object is used:

set 99 accel 2

End of the CT140 update

The AY290 release of P5 corrects the following problems:

1.  A problem with bar graph event cancellation has been fixed.

The AY270 release of P5 corrects the following problems:

1.  A bug in the caching of class bitmaps that could lead to potentially large memory leaks has been fixed.

2.  When bar graphs are operating in "rate" mode, and an absolute "set bar" command is encountered, i.e., a "set bar" command without a rate specified, the rate is now properly set to zero.  Prior to this release, P5 failed to cancel "rate" mode.

The PR090 release of P5 corrects a problem with file name qualifications for files used as P5 "pictures".  Prior to this fix, in some circumstances, file name qualifications could be doubled; e.g., "FolderB\MyPic.jpg" ended up being interpreted as "FolderB\FolderB\MyPic.jpg".

The PR060 release of P5 incorporates the following improvement:

Animation time information displayed at the right end of P3D's toolbar is no longer suppressed in debug mode.

The EB250 release of P5 incorporates the following improvement:

The calculation of computational epsilons used in P5's interface for constructing paths has been modified to accommodate layouts that have large coordinate extrema, e.g., of magnitude 10^5.  Prior to this change, in some layouts with large coordinate values, P5 could fail to detect some intersections of lines and arcs.

The EB170 release of P5 incorporates the following improvement:

Handling of corrupted or otherwise invalid screen coordinates in the descriptions of split windows has been improved.

The AN140 release of P5 incorporates miscellaneous, largely cosmetic updates.

The OV289 release of P5 incorporates miscellaneous updates and brings P5 into sync with the November 28, 2009 baseline installation of Wolverine's products.  (Click here for an explanation of how our baseline installation works.) 

The CT309 release adds support for P5 Pictures (imported bitmap images) under Box Edit.  This facilitates moving & rescaling and cutting & pasting.

The EP259 corrects two problems:

1.  When editing and saving layouts, under certain unpredictable circumstances, P5 could "lose" font definitions.  This problem has been found and fixed.

2.  Animations that move colocated objects in tandem, e.g., loads on carriers, could result in random pixels being left behind the objects when dual-core processing was enabled on a multiple-core machine and SSE2 instructions were enabled.  (Read-modify-write cycles executed in two parallel threads were improperly synchronized, resulting in random, real-time-based conflicts.)  After carefully reviewing SSE2 processing, we found the benefits of using these instructions to be marginal at best, and even counterproductive in some cases.  Accordingly, we have done away with SSE2 processing in P5's rendering pipeline.

The UG209 release of P3D is a cosmetic update that brings P3D into line with other Wolverine products.

Release UL179 of P5 corrects the following problem:

A problem with error recovery from the use of an undefined test/message font has been fixed.

Release AY209 of P5 corrects the following problems:

1.  A number of problems that arose when saving a brand-new layout file for the first time have been fixed.

2.  Picture file names are now stored as relative to the layout file, rather than as absolute file names. This makes it easier to move files around.

The AR049 release of P5 is a largely cosmetic update, intended to keep P5 in sync with other Wolverine products.

The EB029 release of P5 adds support for non-English characters, e.g., German characters with umlauts. P5 now conforms to the Code Page 1252 standard, which supports most European languages.

The EC108 release of P5 corrects a problem with complex combinations of attaching and detaching objects from one another during intervals of time when the objects are also being placed onto and removed from accumulating paths.

The OV208 release of P5 corrects a problem with the detach command that could arise when an object and its parent were both on the same accumulating path.

The EP088 release of P5 corrects all known problems in P5.

The AY138 release of P5 corrects an event scheduling problem caused by a flaw in the corrections made in Release PR308 (below).

The PR308 release of P5 corrects an internal roundoff problem that could lead to spectacular failures by scheduling events to occur at the current animation time minus epsilon.

The PR218 release of P5 corrects the following problems:

The PR218 Release corrects a number of minor problems and incorporates changes that offer greater licensing flexibility for users who employ network-based security keys.

The PR018 release of P5 corrects the following problems:

1.  The "Plot Clear" command now works properly with "thick" plot lines.  Previous versions of P5 could "forget" that plot lines were drawn as thick lines and erase them as "thin" lines, leaving residue on the screen.

2.  Area fills for objects containing large numbers of lines are now done using P4's pixel-based algorithm.  For objects with small numbers of lines and no arcs, P5 constructs fills as triangles.  While geometric fills are superior to pixel-based fills, the algorithm P5 uses has at least N2 complexity, where N is the number of lines in the object's class, so objects with large numbers of lines cannot be done using geometric fills.

3.  P5's multi-core recognition algorithm has been revised to recognize configurations used in older CPUs.

The AR138 release of P5 corrects video problems encountered with ATI X1300/1550/2400 video cards and recognition of Intel dual-core CPUs.