Phun Changelog

What's new in Phun Beta 5.26

Mar 24, 2009
  • Rendering:
  • Added support for textured geometries
  • Added new optional rendering mode for water: software meta surface.
  • Scene files:
  • New file format: .phz which is a zip containing the scene, a thumbnail and any used textures.
  • Velocities for objects and water particles is now saved to the scene files.
  • Water and groups can now be saved in phunlets
  • Tools:
  • New brush tool
  • New gear tool
  • New cut tool
  • Polygon tool: self-intersecting polygons are now handled (e.g. figure-of-eight:s)
  • Added the ability to choose the chain building blocks (right-click a group of objects with exactly two hinges attached to the world)
  • When reconnecting a chain to the first geometry in the chain, the chaintool will now create a perfect closed chain with no hinges to the background
  • New behavior: to move or drag something, first select it and then drag it with most any tool.
  • Hinge/fixjoint/spring now attaches to selected geometries first (used to always attach the top two entities)
  • Added the ability to throw things with the move-tool
  • Added 'snap to axis' functionality when holding down SHIFT for Move and Clone tool.
  • UI:
  • Added three levels to the user interface: Simple, Medium and Advanced
  • Made the camera move smoothly
  • Added the ability to rotate the camera with an object (reset rotation with "Zoom to scene" or "Default view")
  • Made Phun more touch-screen friendly (especially when "pen input" is selected)
  • Added the ability to add text onto boxes
  • Pens no longer draw anything when moved in paused mode.
  • Added the ability to select water and move it around, clone it etc.
  • Added extra cursor icon to indicate which tool is selected
  • Added support for non-Latin1 8-bit character sets (you'll need to create a new font file and set Font in the translation file).
  • Added a loading screen
  • Added a splashscreen
  • Changed how a hinge is drawn if it is a motor
  • Added support for pen tablets (including pressure sensitivity when using new brush tool)
  • Mouse-over object highlighting is now only active if the simulation is paused.
  • Fixed so that Phun binds ctrl over left_ctrl and right_ctrl (same for alt, shift and meta) in hinge/geom controllers and Keys.bind.
  • Changed mirror/kill/motor key behavior to only work when the simulation is running
  • When rotating objects or creating planes you will now get automatic 15∞ snapping when the cursor is close to the origin.
  • Added the ability to drag-and-drop images and scenes into Phun from explorer (Windows only)
  • Menus:
  • Went back to the old GUI with rounder and larger components
  • The context menu is now always open instead of poping up on right-click
  • Sliders now round to closest integer or other "simple" number
  • Added a few predefined materials (and you can create your own if you like - see the "materials" folder)
  • Dragging the clone button now creates a clone of the selected objects
  • Added "select alike" button, that selects identical objects (good for finding clones)
  • Added sliders for gravity strength and direction in options
  • Added a button to the menu bar to hide all other gui components.
  • Added the ability to automatically attach tracers to selected geometries
  • Added option "gearify" to add gears to an object (cog sizes decided in the gear tool options)
  • Added "transform into box" action alongside the old "transform into circle".
  • Added a layer filter menu - now specific collision layers can be filtered out from rendering and interaction
  • Changed the color picking sliders from HSL to HSV. Change back by setting "App.GUI.useHSL = true;" in either console or config.cfg
  • Added Sim.time to the simulation info box
  • Reorganized the user interface a lot
  • Added cvar GUI.tooltips so the user can disable tooltips.
  • Physics:
  • Added support for holy polygons (polygons with holes)
  • Added Constructive Solid Geometry (CSG) - select one of two intersecting objects and in the CSG menu select Cut, Intersect, Subtract or Add.
  • Added the ability to create "killer" geometries, that removes anything they touch from the simulation.
  • Replaced Scene.fallLimit with four "killer planes" that removes anything they touch from the simulation. These can be deleted if desired.
  • Added the ability to link the rotation of an object to the direction of gravity
  • Increased the number of collision groups to seven.
  • Physics engine:
  • Added attraction: a distance dependent forces between geometries in the same collision group
  • Added the concept of cables - transparent code that makes chains far more robust than before even under large stress. See the old behavior with "Sim.cables = false;"
  • Greatly improved the stability of towers/stacking
  • Fixed an energy- and momentum leak caused by interaction between forces (springs, gravity, ...) and constraints (hinges, contacts).
  • Scripting:
  • Added a scripting menu in advanced mode where object attributes can be set.
  • Added onCollide function to geometries - this is a function that is called when two objects collide. It has an event argument e with members e.pos, e.normal, e.other and e.this.
  • Added closure "Scene.my" that can contain user defined scene specific variables that will be serialized with the scene.
  • Added two Thyme-meta-functions: Reflection.ExecuteCode and Reflection.ExecuteFile
  • Added command Scene.Open which opens a scene given a filename.
  • Added command Scene.SaveAs which saves the current scene to a given file. WARNING: Will overwrite any existing file without asking!
  • Thyme is now Turing complete through an if-else-clause of the form: (foo ? bar : baz)
  • Improved the Thyme parser to be able to handle chained infix operators (e.g. "4/2*2") without extra parentheses.
  • Thyme is now case insensitive
  • Added Thyme support for hexadecimal and binary numbers (0xf0a1, 0b101011)
  • Added Thyme support for the operators == and != for lists.
  • Fixes:
  • Fixed text input of characters with Alt Gr, i.e. []{}" etc depending on keyboard layout
  • Changed screenshot format from tga to png.
  • Fixed a problem with drawing mouse-cursors when in fullscreen mode.
  • Fixed a problem where thin polygons would get really fouled up distance maps
  • Fixed copy-and-paste of text and phunlets
  • Removed the cmd window in Windows
  • A lot more fixes and tweaks that I've forgotten
  • Optimization:
  • Speeded up mirror and uniform-axes scaling of polygons while also saving memory
  • General speedups, especially for large scenes
  • Added (very) limited support for multicore; type in "Threading.numThreads = N" (no quotations) in your console or config.cfg, where N is your number of cores. May speed up really huge scenes slightly, but may also slow it down.

New in Phun Beta 4.22 (Sep 1, 2008)

  • Fixed a bug where Phun would crash when cloning after first deleting items (thanks for helping me replicate, tatt61880)
  • Added the console command App.GUI.dragUndo. If set to false, drags can't be undone.

New in Phun Beta 4 (Jun 28, 2008)

  • Removed superfluous full program path in the save dialog.
  • Removed dependency on OpenGL 2.0 for shaders (should fix the "NULL-function in Shader::Shader" reported by agsgymboy etc)
  • Set shaders to be on by default where available (hope this won't foul things up anymore)
  • New highlight system: a white border around selected objects (no more blinking)
  • Objects can now be translucent
  • Added a pen tool that attaches to a geometry and draws a line tracing its path.
  • Vastly improved text input system with mouse selection and a lot more
  • Hinge motors can now be bound to any keyboard key or joystick/gamepad button
  • Geometries can have forces added to them controlled by either keyboard or joysticks/gamepads
  • Hinges can be set to break if stretched or strained too much
  • The plane tool now angles the plane in 15? increments if shift is pressed, so it is now simple to create horizontal planes.
  • Rotating with shift pressed will now re-align single boxes or planes to 15? increments
  • Added scene meta info: title, author and description
  • Added setting (gravity, air friction, camera etc) to scene files
  • Upgraded the chain tool to work like the brush tool (ie freehand drawing of chains)
  • New box primitive (boxes are no longer box-shaped polygons)
  • New scale tool
  • Added a mirror command to the popup menu
  • Added the cvar Resources.force16BitTextures for those having texture problems (type "Resources.force16BitTextures = true" in console)
  • Added tooltips for some menu items, such as the tools.
  • Holding down the shortcut key for a tool will now only temporarily select it, while quickly pressing it will select it for real.
  • Redone the menus quite a bit. They can now be collapsed, renamed (click their titles) and are automaticly saved in the scene and config files.
  • You can now have the canera follow a group of objects instead of just one
  • You can now move the camera relative to the object (or group of objects) you are following.
  • Extended the number of collision groups to five (used to be three).
  • Added Phunlets (save a phunlet by right-clicking a group of objects, import a phunlet by right-clicking the background).
  • Added the ability to copy- and paste phunlets/objects/thyme-code in Phun (ie: select something, press ctrl-c, and then ctrl-v it where you want a copy or want the code)
  • Changed fixate behaviour to always fixate the top two geometries, even if they're already connected (same for hinges and springs)
  • Phun now starts the simulation whenever a new scene is loaded (though you can immediatly undo this)
  • Added ability to change water and sky color in the right click menu.
  • Removed some rather arbitrary limits on position, speed and angular velocity
  • Fixates and hinges now have a small plus ( ) added to them when attached to the background (thanks for the suggestion, Melchior)
  • Fixed GUI mouse input opacity (you can no longer click through a GUI window)
  • Fixed a few fixate-related bugs
  • Fixed a bug where water particles would sometimes collide with a polygon bounding box.
  • Various fixes and tweaks