Simphy 0.8 (Beta Version) released

After a big time gap Simphy is updated version 0.8 with many new improvements and several bug fixes and improvements.

Biggest Update ever done in Simphy!

This update mainly features following enhancements ..

Read more

SimPHY 2.8 released

Simphy 2.8 version is mainly focused on updating graphing module and fixing some critical bugs especially in touch screen devices.

 

Grapher Enhancements

  • Now we can choose multiple units to plot together
  • Graphs can be stacked over one another, useful especially when units are different
  • Graph legends are displayed on graph itself to allow showing/hiding them quickly
  • Graph has option to take continuous input or plot data for a defined interval
  • Graph has option to update after a pre defined number of frames, which lets user to collect data after every fixed interval of time.

Bug Fixes

  • Fixed improper handling of touch events at some places in circuit simulator and during picking of objects
  • Multiple mouse events received in single frame are stored in array and passed one by one to event handler
  • Context menu event is triggered from system event rather than creating explicitly from right click event
  • Canvas now supports High DPI screens having non integral scale factor
  • Zoom and simulation speed control sliders are set as non movable to allow changing value with one touch
  • Updated geometry and circuit module to interact with touch/pen

Collision Categories and Filters

By default, all the shapes are able to collide with all the other shapes, but it’s also possible to set up ‘collision filters’ to provide finer control over which fixtures can collide with each other. Collision filtering is implemented by setting some flags in the fixture definition when we create the fixture. These flags are:

Category: The category(s) to which the object belongs

Collides With: The category(s) with which object can collide

Lets talk about X and Y objects whose categy is set so non None . The collision between them will occur only when following 2 conditions are met

  1. Y belongs to category which is listed in collides with category of X
  2. X belongs to category which is listed in collides with category of Y

Illustration Example

To illustrate collision filtering, let’s take an example: we have three kinds of objects in a simple platformer game: playersmonsters, coins, fireballs and ground.

We want the following rules: players should not collide with each others, neither do monsters, but players should collide with monsters (and vice-versa). Of course, players and monsters have to collide with the platform/ground.

ObJECT CATEGORY COLLIDES WITH
Ground None (default) All(default)
Mario A All-A
Monster B All-B
Coin C A
Fire D All-ACD

Here

  • Ground will collide with all since its behaviour is default.
  • Mario will collide All except those which are of category A
  • Monster will collide all except themselves
  • Fire will collide all except with Mario coin, and bullet
  • Coin will collide with Mario alone

Now, you git and idea how to perform selective collision. Download the corresponding simulation below to play in Simphy 2.5+.

A short Demo

Fluid Simulator

Mechanics Simulator

Virtual Labs

Optics Simulator

Circuit Simulator

Circuit Simulator

Circuit simulator in SimPHY can create or simulate any circuit diagram with high precision. By using its drag and drop tools, we can create and see how the real circuit will work. Click on the ‘circuit icon’ in Visualisation toolbar on simphy to enable it as shown below. You will see a tab with multiple icons like wires, resistors, batteries, diodes, bulb, instruments like ammeter, potentiometer, logic gates etc that can be used to create Circuit Simulations.

 

Introduction SimCircuit

 

3-D Simulations

Fields and Forces

Field Forces

SimPhy supports setting up of various fields. Mentioned below are some of them-

Gravity: The default gravity is 9.8 m/s2 pointing in the negative y direction. You can set the Gravity Scale or Gravity factor (with default value 1) of individual objects to experience different gravity and behave differently in the Property Panel.

Electrostatic field: Electrostatic field (in N/C) added to the world, applies force on an object if and only if it has non zero charge and it is inside the bounds of the field.

The electrostatic force on an object is calculated as Force = charge x electrostatic field

Magnetic field: Magnetic field (in Wb/m2 perpendicular to the plane) added to the world, apply force on an object if and only if it has non zero charge and it is moving.

The magnetic lorentz force on an object is calculated as Force = charge x speed x magnetic field

and is perpendicular to the velocity

Buoyancy and drag: Buoyancy can be added to a region representing hypothetical liquid in that region. The density and viscosity of liquid can be changed while adding/editing field.

The buoyancy force on an object is calculated as

Force = [area submerged] X [density of liquid] X [gravity] -[viscosity]*[speed]

Additional correction for lift is also taken into account based on the geometry of the object.

Air Drag: Air drag can be simulated using Buoyancy field with small values of density (e.g. 0.001) and small value of viscosity (e.g 0.001).

You can easily add fields without any coding as shown in the GIF or simply by right clicking in the working area and then select world settings then choose desired Field.

Adding fields

Note:

  • Electric and magnetic forces will be experienced by bodies having non zero charge.
  • For how to add change to body, have a look at property panel
  • Fields like buoyancy have some default hard coded settings for drag coefficient etc.
  • All Fields are measured in the SI System of units.