Deprecated: Required parameter $query follows optional parameter $post in /var/www/html/wp-content/plugins/elementor-extras/modules/breadcrumbs/widgets/breadcrumbs.php on line 1215
Physics Engine - Blocks, Python Functions, Projects | PictoBlox Extension
[PictoBloxExtension]

Physics Engine

physics
Extension Description
Add physics to simulate the real-life simulation.

Introduction

What is Physics Engine?

Physics Engine is a 2D rigid body simulation library for making games and animations. Programmers can use it in their games to make objects move in realistic ways and make the projects more interactive. From the game engine’s point of view, the physics engine is just a system for procedural animation.

Accessing Physics Engine in Block Coding

Following is the process to add Physics Engine capability to the PictoBlox Project.

  1. Open PictoBlox and create a new file.
  2. Select the coding environment as Block Coding.
  3. Next, click on the Add Extension button and add the Physics Engine extension.
  4. You can find the Physics Engine blocks available in the project.

Core Concepts

Physics Engine works with several fundamental concepts and objects. We briefly define these objects here and more details are given later in the block definitions and examples.

  1. Shape: A shape is a 2D geometrical sprite, such as a circle or polygon or the sprite shape.
  2. Rigid body: A chunk of matter that is so strong that the distance between any two bits of matter on the chunk is constant. They are hard like a diamond. In the following discussion, we use body interchangeably with rigid body.
  3. Fixture: A fixture binds a shape to a body and adds material properties such as density, friction, and restitution. A fixture puts a shape into the collision system (broad phase) so that it can collide with other shapes.
  4. Constraint: A constraint is a physical connection that removes degrees of freedom from bodies. A 2D body has 3 degrees of freedom (two translation coordinates and one rotation coordinate). If we take a body and pin it to the wall (like a pendulum) we have constrained the body to the wall. At this point the body can only rotate about the pin, so the constraint has removed 2 degrees of freedom.
  5. Contact constraint: A special constraint designed to prevent penetration of rigid bodies and to simulate friction and restitution. You do not create contact constraints; they are created automatically by Physics Engine.
  6. World: A physics world is a collection of bodies, fixtures, and constraints that interact together. Box2D supports the creation of multiple worlds, but this is usually not necessary or desirable.
  7. Solver: The physics world has a solver that is used to advance time and resolve contact and joint constraints. The Box2D solver is a high-performance iterative solver that operates in order N time, where N is the number of constraints.
  8. Continuous collision: The solver advances bodies in time using discrete time steps.
Read More

PictoBlox Blocks

The block activates the sprite under this hat block when the analog sensor value connected to the selected pin becomes greater than the threshold set for the sensor. The block is used for analog sensors like Light Sensor and Gas Sensor.
The block sets the specified motor of the Quarky Expansion board to the specified direction (“FORWARD” or “BACKWARD”) and specified speed for the specified time. After that, the robot turns OFF.
The block gets the last data value of the specified feed as a number or as a string.
The block reports the value 1 of the webhook event.
The block sets the servo motors of the quadruped to the specified angles at the specified speed.
The block sets the individual motors at the specified speed. Here -100 is the motor running in the reverse direction at full speed and 100 is the motor running in the forward direction at full speed. 0 means the wheel will be stopped.
The block makes a request to ChatGPT to convert the text specified in it to emojis. The response of ChatGPT is then stored in PictoBlox and can be accessed using the get AI response block.
The play tone on () of note () & beat () block is a useful tool for adding audio elements to projects. It can play a tone with a certain frequency (note) for a specified duration (beat) with either a selection from the drop-down menu or a user-defined frequency and duration in milliseconds.
The block clears the display.
This block is used to move the end-effector of the robotic arm to a desired point in space, specified by the X, Y, and Z coordinates in the specified time.
Select left and right IR sensors for line following using either onboard or external sensors connected to analog pins.
Sends a message of the specified color.
Rotate the sprite clockwise a specified amount. Turn with 12 for a full rotation.
Decreases the sprite’s size.
Runs the blocks inside if a specified key is pressed.
Plays a specific musical note according to the instrument set.
Sets the thickness of the lines that can be drawn.
After connection is established, moves the quarky in a specified direction forever.
Displays a specified pattern from list on the quarky LED display.
Alllows the sprite to follow the movement of a detected face in real-time.
Runs the blocks inside if the specified hand sign/gesture is detected .
After connection is established, rotates the wizbot a specified degree of angle to the left.
After connection is established, turns the wizbot a specified number of step to the left.
The block allows you to enter the coordinates of two points on the TFT display and joins them using a straight line of the specified color which you can choose from the color picker.
evive Inbuilt tools. evive have 12 capacitive touch inputs, where you can sense if the pin is touched or not. If the specified channel is touched, the block returns “True”, else it returns false.
The block returns the real-time value of the selected parameter (X value, Y value, radial value, and angle) form the joystick and accelerometer mode of the Gamepad module of the Dabble app. You can choose the parameter from the drop-down menu.
This block adds the offset on the end effector position along the specified length direction i.e. the direction in which the robotic arm is facing and the Z direction. The block is mainly used to calibrate the end-effector with respect to the base.  
This block is to assign pre-defined leg movements and actions to our Humanoid Robot.
The block sets its sprite’s X and Y position to the specified amounts. This block has no animation in its movement — it is the simplest way to move a sprite around the screen without displaying any animation (i.e. gliding). Therefore, this block is used whenever a sprite needs to jump to another spot.
All articles loaded
No more articles to load

Block Coding Examples

All articles loaded
No more articles to load
Table of Contents