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 AY012 incorporates a few improvements common to all Wolverine products.

To download and install Release AY012, click here.

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.  While P5 is LAA-enabled, you must also enable LAA mode at the operating system level.  Under XP, this is done by placing a /3GB switch in boot.ini.  Under Vista and Windows 7, the boot configuration data (BCD) element IncreaseUserVa must be set to a value between 2038 and 3072.  The maximum value is equivalent to XP's /3GB.

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.