Physics Engine

0.0(0)
Studied by 0 people
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/83

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 4:59 PM on 7/8/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

84 Terms

1
New cards

Force

[Physics] An influence that can cause an object to change its velocity (Unit: Newton)

2
New cards

Mass

[Physics] An intrinsic property of a body measuring its resistance to acceleration (inertia) when a net force is applied (Unit: kg)

3
New cards

Normal Force

[Physics] A perpendicular reaction force exerted by a surface pushing back against an object

4
New cards

Friction Force

[Physics] The force resisting the relative motion of surfaces, proportional to the normal force

5
New cards

Impulse

[Physics] A force applied during a specific delta time

6
New cards

Physics Engine Loop

[Physics] A systematic 3-step loop: (1) Sum forces acting on an object, (2) update velocity according to time step (dt), and (3) update position according to velocity and dt

7
New cards

Newton’s First Law (Principle of Inertia)

[Physics] A body remains at rest or in motion at a constant speed in a straight line unless acted upon by a force

8
New cards

Newton’s Second Law

[Physics] Force is proportional to the change of motion (acceleration) over time.

9
New cards

Newton’s Third Law (Reaction Law)

[Physics] To every action, there is always an opposed and equal reaction

10
New cards

Gravitation Law

[Physics] The attractive force between two masses (‘m1’, ‘m2’) separated by distance ‘r’, where ‘G’ is the gravitational constant

11
New cards

Spring Force (Hooke’s Law)

[Physics] Force is proportional to extension, where ‘k’ is the spring stiffness factor

12
New cards

Vector

[Geometry] A geometric object characterized by a magnitude (length) and a direction, usually expressed in column notations

13
New cards

Dot Product

[Geometry] Sum of the products of the vector components. Results in a scalar value that indicates the angle or spatial projection of one vector onto another (a ‘dot’ b = 0 means orthogonal)

14
New cards

Cross Product

[Geometry] An operation unique to 3D space that outputs a vector perpendicular to both input vectors

15
New cards

Lerp

[Geometry] Linear interpolation between positions along a straight line

16
New cards

Slerp

[Geometry] Spherical linear interpolation, which smoothly transitions directional orientations along a curved arc

17
New cards

Determinant

[Geometry] A scalar attribute calculated from a square matrix. If det(A) =/= 0, the system yields a unique solution; if 0, it has no inverse or infinitely many solutions

18
New cards

Gaussian Elimination

[Geometry] An algebraic algorithm that applies row operations to reduce an augmented matrix into row echelon form to solve linear systems

19
New cards

Cramer’s Rule

[Geometry] An explicit formula for solving linear equations using quotients of matrix determinants

20
New cards

Orthogonal Matrix

[Geometry] A square matrix whose column vectors are entirely mutually perpendicular. If normalized, it becomes an orthonormal matrix where its inverse equals its transpose.

21
New cards

Pipelining

[Architecture] An execution technique that overlaps the stages of multiple instructions (Fetch, Decode, Execute, Write) to run simultaneously.

22
New cards

Pipeline Stall

[Architecture] Delays or gaps in the pipeline cycle caused by instruction hazards or waiting for data.

23
New cards

Latency

[Architecture] The number of cycles an instruction takes to navigate the entire pipeline

24
New cards

Throughput

[Architecture] The number of instructions completed per clock cycle (Instructions Per Clock / IPC)

25
New cards

Out-Of-Order Execution

[Architecture] A processing method where a CPU executes instructions based on data readiness rather than their original programmatic sequence

26
New cards

Register Renaming

[Architecture] A technique where the CPU secretly maps architectural registers to hardware registers to clear fake data dependencies in parallel execution loops

27
New cards

Cache Levels & Lines

[Architecture] Hierarchy designed to curb main RAM read latency. Caches read data inside fixed 64-byte lines. Moving from fastest/smallest to slowest/largest: L1 (Instruction/Data), L2, L3 (Last Level Cache / LLC).

28
New cards

Compute-Bound

[Architecture] Tasks that are limited by raw calculation performance (ALU speed)

29
New cards

Memory-Bound

[Architecture] Tasks that are limited by memory layout speeds and suffer high cache misses

30
New cards

Speculative Execution / Branch Prediction

[Architecture] The CPU guesses which branch direction a conditional check (‘if’ statement) will take to fetch instructions ahead of time. A Misprediction flushes the pipeline, causing severe cycle loss

31
New cards

SIMD (Single Instruction Multiple Data)

[Architecture] Performing calculations across multiple pieces of uniform data simultaneously in specialized wide registers (e.g., SSE, AVX), distinct from multi-threading.

32
New cards

Profiling

[Profiling] Measuring the runtime characteristics of a program (e.g., execution time, memory usage, bandwidth, hardware utilization).

33
New cards

Hotspot

[Profiling] A specific area or section of code within a program that consumes a high amount of execution time or resources.

34
New cards

Bottleneck

[Profiling] A point in execution that limits the overall performance of the application.

35
New cards

Sampling

[Profiling] A profiling method that periodically interrupts the program to record the call stack, yielding statistical averages (e.g., Intel VTune, Linux perf)

36
New cards

Instrumentation

[Profiling] A profiling method requiring manual code hooks inserted into the source code to collect exact business-logic metrics (e.g., Tracy, Optick).

37
New cards

High CPU Time

[Profiling] Inefficient algorithm execution where the processor spends excessive time inside computations, loops, or branch mispredictions.

38
New cards

High Wait Time

[Profiling] Idle processor states where code blocks wait for async tasks, disk I/O, network calls, or mutex locks to finish

39
New cards

Real-Time Safe Code

[Profiling] Code with deterministic, known-in-advance worst-case execution times that must complete before a specific deadline. Rule of thumb: Avoid 3rd party code, mutexes, memory allocation/deallocation, and I/O on the hot path.

40
New cards

static

[C++] Holds many different depending on how you use it. In a free function/global space, it establishes internal linkage (hidden from other units). Inside a function block, it defines a persistent local variable initialized only once on the first run

41
New cards

constexpr

[C++] It permits functions to execute at either compile-time or run-time depending on inputs

42
New cards

consteval

[C++] It guarantees execution occurs exclusively at compile time.

43
New cards

Tweening

[Math] Mathematical interpolation adjustments (e.g., SmoothStart, SmoothStop, SmoothStep) that transform linear transitions into natural-looking accelerations or decelerations.

44
New cards

Gimbal Lock

[Math] A critical constraint encountered when using Euler angles (Yaw, Pitch, Roll) where the loss of one degree of freedom occurs when two rotational axes align on a 90 degres pitch.

45
New cards

Quaternion

[Math] A four-dimensional coordinate representation (w, x, y, z) composed of one real component and three imaginary components (i, j, j). Quaternions avoid Gimbal Lock and provide an efficient way to calculate smooth, non-linear 3D spatial rotations via spatial vector operations.

46
New cards

Complex Numbers

[Math] An algebraic field expansion built using the imaginary unit. Restricting complex numbers to unit length enables them to model 2D rotations.

47
New cards

General Purpose Registers

[Assembly] Fast-access storage units on the CPU. Key system boundaries include RSP (Stack Pointer), RBP (Base Pointer), and RAX/EAX/AX/AL (Return Values).

48
New cards

Size Mapping

[Assembly] Bool = 1 Byte

Int/Float = Double-word (4 Bytes)

Pointer/Long/Double = Quadword (8 Bytes)

49
New cards

Sign Extension (movsx / movsxd)

[Assembly] Moving smaller signed numbers into larger memory formats while preserving the sign bit.

50
New cards

LEA (Load Effective Address)

[Assembly] Copies an address from source to destination; frequently used by compilers for fast addition and power-of-2 multiplication.

51
New cards

Endianness

[Assembly] Byte ordering scheme in memory. x86_64 architecture uses Little-endian, placing the least significant byte first.

52
New cards

std::array

[C++] A stack-based container with a compile-time fixed size; the optimal "go-to" structural choice for low-level performance.

53
New cards

std::vector

[C++] A heap-based dynamic container that handles variable size execution using pointers (begin, end, capacity). Allocates memory dynamically when resizing or pushing back.

54
New cards

std::map

[C++] A linked-list structure organized as a node-based red-black tree. It causes heavy performance issues on cache-oriented layouts due to partial/rebalancing traversals.

55
New cards

std::unordered_map

[C++] A hash map using continuous constant lookup bounds via key hashing. Potential drawbacks include cache misses (buckets use linked lists) and hash collision penalties.

56
New cards

Small String Optimization (SS)

[C++ concept] A compiler optimization technique where small strings are stored directly on the stack to bypass dynamic heap allocation overhead.

57
New cards

std::unique_ptr

[C++] A smart pointer that completely owns a piece of memory. It cannot be copied or shared, ensuring the memory is deleted safely when it goes out of scope.

58
New cards

std::shared_ptr

[C++] A smart pointer that tracks how many owners point to a piece of memory. The memory is only deleted when the very last owner stops using it.

59
New cards

Rule of Zero

[C++ concept] A modern rule stating you should design classes so they don't need custom cleanup code at all, leaving it entirely to automated smart pointers and standard containers.

60
New cards

Broadphase Collision

[Physics] A quick, cheap screening phase that weeds out objects that are nowhere near each other using simple bounding boxes.

61
New cards

Narrowphase Collision

[Physics] The precise, secondary phase that takes the remaining close objects and calculates exactly where and how they are hitting each other.

62
New cards

Seperating Axis Theorem (SAT)

[Physics] A rule stating that if you can fit a straight flat line between two shapes without touching either, they are not colliding.

63
New cards

Convex Polygon

[Physics] A shape with no inward dents. If you draw a line between any two points inside the shape, the line never crosses outside the border.

64
New cards

Semi-Implicit Euler Integration

[Physics] A formula for moving objects where you calculate the new velocity first, and then immediately use that new velocity to find the next position. It is highly stable and popular in game loops.

65
New cards

MRU/MRUA

[Physics] Physics equations detailing uniform straight-line motion (constant speed, zero acceleration) versus uniformly accelerated linear motion (constant acceleration altering speed over time).

66
New cards

Centripetal Acceleration

[Physics] The inward-pulling acceleration that forces an object moving at a constant speed to turn in a perfect circle.

67
New cards

Superscalar Execution

[CPU] The CPU’s ability to process multiple separate instructions at the exact same time during a single clock cycle.

68
New cards

Conflict Cache Miss

[CPU] A mistake that happens when data is kicked out of the cache prematurely because multiple active memory addresses are fighting over the exact same cache slot, even if other slots are completely empty.

69
New cards

Branchless Programming

[CPU] Writing code without using if statements. Instead, you use math or logic tricks so the CPU can run in a straight, uninterrupted line.

70
New cards

Leaf Function

[Assembly] A function that doesn't call any other functions. Because it is an "end point," it saves time by skipping the setup of a formal memory stack frame.

71
New cards

Packed Instructions (addps)

[SIMD] A parallel instruction that calculates a whole bundle of numbers (like four floats) at the exact same time in a single step.

72
New cards

Scalar Instructions (addss)

[SIMD] A traditional instruction that calculates only a single number at a time, leaving the rest of the CPU's parallel pathways completely empty.

73
New cards

Array of Structures (AoS)

[SIMD] Organizing data by object ([Player1: X, Y, Z], [Player2: X, Y, Z]). This is easy to read but slow for the CPU to process in bulk.

74
New cards

Structure of Arrays (SoA)

[SIMD] Organizing data by property ([All Xs], [All Ys], [All Zs]). This allows the CPU to grab exactly what it needs in bulk without wasting cache space.

75
New cards

RAII

[C++ concept] A core rule in C++: binding a resource (like allocated memory) to the lifespan of an object. The object grabs the memory when it's born and automatically deletes it when it dies.

76
New cards

Devirtualization

[C++ concept] An optimization where the compiler figures out exactly which function will be called ahead of time, bypassing the slow vtable lookup completely.

77
New cards

Move Semantics

[C++ concept] Transferring ownership of data from one object to another without duplicating or copying the underlying data, usually using std::move.

78
New cards

CPU

[Core Hardware] The computer’s brain that executes code and runs calculations

79
New cards

RAM

[Core Hardware] The computer’s temporary main memory; it is fast but clears completely when turned off

80
New cards

Cache

[Core Hardware] Ultra-fast, tiny memory built directly inside the CPU to store recently used data

81
New cards

Stack

[Core Hardware] An ultra-fast, organized memory scratchpad where local function variables live and die automatically

82
New cards

Heap

[Core Hardware] A large, unorganized pool of memory used for variables that change size dynamically; must be managed manually

83
New cards

Pointer

[C++ concept] A variable that holds a memory address (a location) instead of an actual value

84
New cards

Reference

[C++ concept] A safe nickname or alias for an existing variable that doesn't copy the data