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 turns OFF the specified RGB LED of Quarky.
The function stops the specified motor of the Quarky.
The block initializes the ultrasonic sensor with specified echo and trig pins.
The block checks whether the selected class has been detected or not. If the class is detected, then the block returns true; else, false.
Scripts that wear this block will activate once the selected class is predicted either on the recognition window, stage or camera.
Scripts that wear this block will activate once the selected class is predicted either on the recognition window, stage or camera.
The block reports the mass of the sprite.
The block sets the threshold for the sensor connected to the selected pin. Threshold helps users decide whether the sensor is active or not. If the sensor value is greater than the threshold value, the sensor is active, or else it is inactive.
The block reports if the Wi-Fi is connected to the Quarky or ESP32 or not. This block is only available in Upload Mode.
The block sets the oscillator parameters for the selected servo motor.
The block resets the timer to 0.
The block sets the servo motors of the humanoid legs and hands to the specified angles at the specified speed.
The block sets the selected servo motor angle to the specified angle in the specified time. This creates a smooth motion for the servo motor from the current angle to the specified angle.
The block sets the pick or the place action angles to the specified value.
The block makes a request to ChatGPT to get all the nouns, pronouns, verbs, adverbs, adjectives, propositions, conjunction, and interjection from the text specified in it. The response of ChatGPT is then stored in PictoBlox and can be accessed using the get AI response block.
This block takes in a given value and converts it to either an integer or a float depending on the input.
The block writes the text and numbers on the 4×7 segment display.
This block is used to control an end-effector of the robotic arm to move in an arc.
This block sets motor speeds for Quarky’s line following, defining forward and turning speeds for tracking a black line on a white path.
Jumps the sprite up, a specified number of grid squares and then down again.
Changes the costume of the sprite as specified from the options.
Runs the blocks inside if a specified button is pressed of the quarky.
Runs the left motor of the wizbot in a specified direction.
Lights up the LED of the wizbot with specified color.
The block is used to draw an outline of the circle or a filled circle of a specified radius and center position on evive TFT display. It takes the center and the radius of the circle from the user and draws an outline of a circle.
The block sets the digital state of the specified digital pin to either “High” or “Low”. If the output is High, the pin will be at 5V and if the output is Low the pin will be at 0V.
Dabble inputs module have two tactile switches. This block reports the state of the tactile switch (pressed or not) in real-time. If the switch is pressed, then it returns true else false.
This block is to assign custom hand actions to our Humanoid Robot.
The block moves its sprite steadily to the specified X and Y position in the specified amount of seconds – this is like pointing the sprite in a direction and repeatedly using Move () Steps, but with more precision. A disadvantage of the glide block, however, is that it pauses the script while the sprite is moving, preventing the script from doing other things while the sprite is gliding.
The block changes its sprite’s size by the specified amount. The default sprite size is 100; size values below that percentage are for shrunken sprites, and size values above it are for overlarge sprites.
All articles loaded
No more articles to load

Block Coding Examples

There are no block coding examples for the extension to show.
Table of Contents