<commit_before>\documentclass[12pt]{article}
\usepackage{fullpage}
\usepackage{hyperref}
\hypersetup{bookmarks=true,colorlinks=true,linkcolor=red,citecolor=blue,filecolor=magenta,urlcolor=cyan}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{caption}
\title{Software Requirements Specification for Chipmunk2D}
\author{<NAME> and <NAME>}
\begin{document}
\maketitle
\tableofcontents
\newpage
\section{Reference Material}
\label{Sec:RefeMate}
This section records information for easy reference.
\subsection{Table of Units}
\label{Sec:TablofUnit}
The unit system used throughout is SI (Syst\`{e}me International d'Unit\'{e}s). In addition to the basic units, several derived units are also used. For each unit, the table lists the symbol, a description and the SI name.
\begin{longtable*}{l l}
\toprule
Symbol & Description
\\
\midrule
m & length (metre)
\\
kg & mass (kilogram)
\\
s & time (second)
\\
N & force (newton)
\\
rad & angle (radian)
\\
\bottomrule
\label{Table:TablofUnit}
\end{longtable*}
\subsection{Table of Symbols}
\label{Sec:TablofSymb}
The table that follows summarizes the symbols used in this document along with their units. Throughout the document, symbols in bold will represent vectors, and scalars otherwise. The symbols are listed in alphabetical order.
\begin{longtable*}{l l l}
\toprule
Symbol & Description & Units
\\
\midrule
$\mathbf{a}$ & Acceleration & $\frac{\text{m}}{\text{s}^{2}}$
\\
$\mathbf{a}_{i}$ & Acceleration Of The I-th Body's Acceleration & $\frac{\text{m}}{\text{s}^{2}}$
\\
$\mathbf{a}(t)$ & Linear Acceleration & $\frac{\text{m}}{\text{s}^{2}}$
\\
$C_{R}$ & Coefficient of restitution & 
\\
$\mathbf{F}$ & Force & N
\\
$g$ & Gravitational acceleration & $\frac{\text{m}}{\text{s}^{2}}$
\\
$G$ & Gravitational constant & $\frac{\text{m}^{3}}{(\text{kg}\text{s}^{2})}$
\\
$\mathbf{I}$ & Moment of inertia & kg$\text{m}^{2}$
\\
$\mathbf{\hat{i}}$ & Horizontal Unit Vector & m
\\
$\mathbf{J}$ & Impulse (vector) & Ns
\\
$j$ & Impulse (scalar) & Ns
\\
$\mathbf{\hat{j}}$ & Vertical Unit Vector & m
\\
$L$ & Length & m
\\
$m$ & Mass & kg
\\
$m_{i}$ & Mass Of The I-th Particle & kg
\\
$M$ & Total Mass Of The Rigid Body & kg
\\
$\mathbf{n}$ & Collision Normal Vector & m
\\
$n$ & Number of particles in a rigid body & 
\\
$\mathbf{p}$ & Position & m
\\
$\mathbf{p}_{CM}$ & The mass-weighted average position of a rigid body's particles & m
\\
$\mathbf{p}_{i}$ & Position Vector Of The I-th Particle & m
\\
$r$ & Distance & m
\\
$\mathbf{r}$ & Displacement & m
\\
$\mathbf{r}(t)$ & Linear Displacement & m
\\
$t$ & Time & s
\\
$\mathbf{v}$ & Velocity & $\frac{\text{m}}{\text{s}}$
\\
$\mathbf{v}_{i}^{AB}$ & Relative Velocity Between Rigid Bodies Of A And B & $\frac{\text{m}}{\text{s}}$
\\
$\mathbf{v}(t)$ & Linear Velocity & $\frac{\text{m}}{\text{s}}$
\\
$||\mathbf{n}||$ & Length Of The Normal Vector & m
\\
$||\mathbf{r}_{AP}*\mathbf{n}||$ & Length Of The Perpendicular Vector To The Contact Displacement Vector Of Rigid BodyA & m
\\
$||\mathbf{r}_{BP}*\mathbf{n}||$ & Length Of The Perpendicular Vector To The Contact Displacement Vector Of Rigid BodyB & m
\\
$\alpha{}$ & Angular Acceleration & $\frac{\text{rad}}{\text{s}^{2}}$
\\
$\omega{}$ & Angular Velocity & $\frac{\text{rad}}{\text{s}}$
\\
$\phi{}$ & Orientation & rad
\\
$\tau{}$ & Torque & Nm
\\
$\theta{}$ & Angular Displacement & rad
\\
\bottomrule
\label{Table:TablofSymb}
\end{longtable*}
\subsection{Abbreviations and Acronyms}
\label{Sec:AbbrandAcro}
\begin{longtable*}{l l}
\toprule
Symbol & Description
\\
\midrule
A & Assumption
\\
CM & Centre of Mass
\\
DD & Data Definition
\\
GD & General Definition
\\
GS & Goal Statement
\\
IM & Instance Model
\\
LC & Likely Change
\\
ODE & Ordinary Differential Equation
\\
R & Requirement
\\
SRS & Software Requirements Specification
\\
T & Theoretical Model
\\
2D & Two-Dimensional
\\
\bottomrule
\label{Table:AbbrandAcro}
\end{longtable*}
\section{Introduction}
\label{Sec:Intr}
Due to the rising cost of developing video games, developers are looking for ways to save time and money for their projects. Using an open source physics library that is reliable and free will cut down development costs and lead to better quality products.
The following section provides an overview of the Software Requirements Specification (SRS) for Chipmunk2D, an open source 2D rigid body physics library. This section explains the purpose of this document, the scope of the system, and the organization of the document.
\subsection{Purpose of Document}
\label{Sec:PurpofDocu}
This document descibes the modeling of an open source 2D rigid body physics library used for games. The theoretical models andgoal statements used in Chipmunk2D are provided. This document is intended to be used as a reference to provide all necessary information to understand and verify the model.
This document will be used as a starting point for subsequent development phases, including writing the design specification and the software verification and validation plan. The design document will show how the requirements are to be realized. The verification and validation plan will show the steps that will be used to increase confidence in the software documentation and the implementation.
\subsection{Scope of Requirements}
\label{Sec:ScopofRequ}
The scope of the requirements includes the physical simulation of 2D rigid bodies acted on by forces. Given the appropriate inputs, the code for Chipmunk2D is intended to simulate how these rigid bodies interact with one another.
\subsection{Characteristics of Intended Reader}
\label{Sec:CharofInteRead}
Reviewers of this documentation should have a strong knowledge in rigid body dynamics. The reviewers should also have an understanding of high school calculus. The users of Chipmunk2D can have a lower level of expertise, as explained in Section~\ref{Sec:UserChar}.
\subsection{Organization of Document}
\label{Sec:OrgaofDocu}
The organization of this document follows the template for an SRS for scientific computing software proposed by [1] and [2]. The presentation follows the standard pattern of presenting goals, theories, definitions, and assumptions. For readers that would like a more bottom up approach, they can start reading the instance models in Section~\ref{Sec:InstMode} and trace back to find any additional information they require.
The goal statements are refined to the theoretical models, and the theoretical models to the instance models.<commit_msg>updated stable<commit_after>\documentclass[12pt]{article}
\usepackage{fullpage}
\usepackage{hyperref}
\hypersetup{bookmarks=true,colorlinks=true,linkcolor=red,citecolor=blue,filecolor=magenta,urlcolor=cyan}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{caption}
\title{Software Requirements Specification for Chipmunk2D}
\author{<NAME> and <NAME>}
\begin{document}
\maketitle
\tableofcontents
\newpage
\section{Reference Material}
\label{Sec:RefeMate}
This section records information for easy reference.
\subsection{Table of Units}
\label{Sec:TablofUnit}
The unit system used throughout is SI (Syst\`{e}me International d'Unit\'{e}s). In addition to the basic units, several derived units are also used. For each unit, the table lists the symbol, a description and the SI name.
\begin{longtable*}{l l}
\toprule
Symbol & Description
\\
\midrule
m & length (metre)
\\
kg & mass (kilogram)
\\
s & time (second)
\\
N & force (newton)
\\
rad & angle (radian)
\\
\bottomrule
\label{Table:TablofUnit}
\end{longtable*}
\subsection{Table of Symbols}
\label{Sec:TablofSymb}
The table that follows summarizes the symbols used in this document along with their units. Throughout the document, symbols in bold will represent vectors, and scalars otherwise. The symbols are listed in alphabetical order.
\begin{longtable*}{l l l}
\toprule
Symbol & Description & Units
\\
\midrule
$\mathbf{a}$ & Acceleration & $\frac{\text{m}}{\text{s}^{2}}$
\\
$\mathbf{a}_{i}$ & Acceleration Of The I-th Body's Acceleration & $\frac{\text{m}}{\text{s}^{2}}$
\\
$\mathbf{a}(t)$ & Linear Acceleration & $\frac{\text{m}}{\text{s}^{2}}$
\\
$C_{R}$ & Coefficient of restitution & 
\\
$\mathbf{F}$ & Force & N
\\
$g$ & Gravitational acceleration & $\frac{\text{m}}{\text{s}^{2}}$
\\
$G$ & Gravitational constant & $\frac{\text{m}^{3}}{(\text{kg}\text{s}^{2})}$
\\
$\mathbf{I}$ & Moment of inertia & kg$\text{m}^{2}$
\\
$\mathbf{\hat{i}}$ & Horizontal Unit Vector & m
\\
$\mathbf{J}$ & Impulse (vector) & Ns
\\
$j$ & Impulse (scalar) & Ns
\\
$\mathbf{\hat{j}}$ & Vertical Unit Vector & m
\\
$L$ & Length & m
\\
$m$ & Mass & kg
\\
$m_{i}$ & Mass Of The I-th Particle & kg
\\
$M$ & Total Mass Of The Rigid Body & kg
\\
$\mathbf{n}$ & Collision Normal Vector & m
\\
$n$ & Number of particles in a rigid body & 
\\
$\mathbf{p}$ & Position & m
\\
$\mathbf{p}_{CM}$ & The mass-weighted average position of a rigid body's particles & m
\\
$\mathbf{p}_{i}$ & Position Vector Of The I-th Particle & m
\\
$r$ & Distance & m
\\
$\mathbf{r}$ & Displacement & m
\\
$\mathbf{r}(t)$ & Linear Displacement & m
\\
$t$ & Time & s
\\
$\mathbf{v}$ & Velocity & $\frac{\text{m}}{\text{s}}$
\\
$\mathbf{v}_{i}^{AB}$ & Relative Velocity Between Rigid Bodies Of A And B & $\frac{\text{m}}{\text{s}}$
\\
$\mathbf{v}(t)$ & Linear Velocity & $\frac{\text{m}}{\text{s}}$
\\
$||\mathbf{n}||$ & Length Of The Normal Vector & m
\\
$||\mathbf{r}_{AP}*\mathbf{n}||$ & Length Of The Perpendicular Vector To The Contact Displacement Vector Of Rigid BodyA & m
\\
$||\mathbf{r}_{BP}*\mathbf{n}||$ & Length Of The Perpendicular Vector To The Contact Displacement Vector Of Rigid BodyB & m
\\
$\alpha{}$ & Angular Acceleration & $\frac{\text{rad}}{\text{s}^{2}}$
\\
$\omega{}$ & Angular Velocity & $\frac{\text{rad}}{\text{s}}$
\\
$\phi{}$ & Orientation & rad
\\
$\tau{}$ & Torque & Nm
\\
$\theta{}$ & Angular Displacement & rad
\\
\bottomrule
\label{Table:TablofSymb}
\end{longtable*}
\subsection{Abbreviations and Acronyms}
\label{Sec:AbbrandAcro}
\begin{longtable*}{l l}
\toprule
Symbol & Description
\\
\midrule
A & Assumption
\\
CM & Centre of Mass
\\
DD & Data Definition
\\
GD & General Definition
\\
GS & Goal Statement
\\
IM & Instance Model
\\
LC & Likely Change
\\
ODE & Ordinary Differential Equation
\\
R & Requirement
\\
SRS & Software Requirements Specification
\\
T & Theoretical Model
\\
2D & Two-Dimensional
\\
\bottomrule
\label{Table:AbbrandAcro}
\end{longtable*}
\section{Introduction}
\label{Sec:Intr}
Due to the rising cost of developing video games, developers are looking for ways to save time and money for their projects. Using an open source physics library that is reliable and free will cut down development costs and lead to better quality products.
The following section provides an overview of the Software Requirements Specification (SRS) for Chipmunk2D, an open source 2D rigid body physics library. This section explains the purpose of this document, the scope of the system, and the organization of the document.
\subsection{Purpose of Document}
\label{Sec:PurpofDocu}
This document descibes the modeling of an open source 2D rigid body physics library used for games. The theoretical models andgoal statements used in Chipmunk2D are provided. This document is intended to be used as a reference to provide all necessary information to understand and verify the model.
This document will be used as a starting point for subsequent development phases, including writing the design specification and the software verification and validation plan. The design document will show how the requirements are to be realized, including decisions on the numerical algorithms and programming environment. The verification and validation plan will show the steps that will be used to increase confidence in the software documentation and the implementation. Although the SRS fits in a series of documents that follow the so-called waterfall model, the actual development process is not constrained in any way. Even when the waterfall model is not followed, as Parnas and Clements point out, the most logical way to present the documentation is still to &quot;fake&quot; a rational design process.
\subsection{Scope of Requirements}
\label{Sec:ScopofRequ}
The scope of the requirements includes the physical simulation of 2D rigid bodies acted on by forces. Given the appropriate inputs, the code for Chipmunk2D is intended to simulate how these rigid bodies interact with one another.
\subsection{Characteristics of Intended Reader}
\label{Sec:CharofInteRead}
Reviewers of this documentation should have a strong knowledge in rigid body dynamics. The reviewers should also have an understanding of high school calculus. The users of Chipmunk2D can have a lower level of expertise, as explained in Section~\ref{Sec:UserChar}.
\subsection{Organization of Document}
\label{Sec:OrgaofDocu}
The organization of this document follows the template for an SRS for scientific computing software proposed by [1] and [2]. The presentation follows the standard pattern of presenting goals, theories, definitions, and assumptions. For readers that would like a more bottom up approach, they can start reading the instance models in Section~\ref{Sec:InstMode} and trace back to find any additional information they require.
The goal statements are refined to the theoretical models, and the theoretical models to the instance models.
{'fraction_non_alphanumeric': 0.124599687197438, 'fraction_numerical': 0.003128025620019364, 'mean_word_length': 4.602002503128912, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3730860', 'n_tokens_mistral': 4021, 'n_tokens_neox': 3860, 'n_words': 1574}