Table of Contents

Previously Proposed Projects




*Proposed projects from Winter 2015*



Concurrent Data Structures

Supervisor: Eric Ruppert

Required Background: EECS2031 and general EECS4080 prerequisites

Desirable Background: EECS3221

A traditional data structure is designed so that one operation can be performed on it at a time. This is no longer sufficient for the multicore architectures that have become prevalent in the past few years. A concurrent data structure is designed so that many threads can access it simultaneously. This requires some care in ensuring that concurrent operations do not interfere with one another.

The goal of this project is to implement concurrent data structures in C so that performance testing can be carried out on them. In particular, we would like to make use of Intel's Manycore Testing Lab (see https://software.intel.com/en-us/articles/intel-mtl-faq-1) to look at throughput and scalability of the data structures when large numbers of threads access them concurrently. Ultimately, we would also like to examine the possibility of designing special-purpose hardware to make concurrent data structures run faster.




Dynamic Interface Detection and Control Project

Supervisor: Michael Jenkin

Contrary to most industries, fine chemical manufacturing is dominated by batch production methods. Increasing economic, environmental and safety pressures are motivating a turn towards continuous synthesis. Rather than making products in one big flask, continuous synthesis involves performing chemical reactions by flowing reagents through a tube. Working in this way provides more control over the reaction parameters leading to increases in product quality, and process efficiency and safety. The flow chemistry industry for fine chemical production is a relatively new but burgeoning field with a projected market capacity of billions of dollars by 2018.

Extraction of the reaction mixture for purification and/or further processing is an important step in chemical manufacturing. This is a relatively straightforward operation in batch production, but offers several challenges for flowing processes. In order to facilitate continuous liquid extraction we require a sophisticated control system. This project involves designing, constructing and evaluating a pertinent practical problem in the field.

A key step in the process takes place in a clear tube that is mounted vertically. The tube contains two fluids with a boundary between them. During the process material flows into and out of the tube from the top and the bottom. Chemical reactions take place within this tube and It is essential that the position of the boundary be monitored as its position in the tube is used to control the flow of materials into the tube.

One way of solving this problem is to float a marker at the boundary between the two liquids and to monitor this boundary using a video camera. Although this approach solves the problem, it requires the introduction of a specific float within the tube. Can we build a system that monitors the boundary without resorting to the use of an artificial float?

Specific goals of the project include:

- Develop a computer vision system that can detect and monitor the interface between two miscible fluids of different density.

- Evaluate the performance of the system over a range of different (and typical) fluids

- Explore the use of different illuminant/filter choices to simplify the task for specific fluid combinations.

The successful candidate(s) will have the experience of working with a diverse group of scientists and engineers toward the design and implementation of an automated liquid extraction device with applications across many industries. Upon successful prototyping, you will be able to interact with professionals in high-throughput manufacturing and system integration. Based on project success, you may be invited to join the MACOS(TM) team for implementation and process validation, which may involve opportunities in graduate school. You will have the opportunity to interact with the broad audience of MACOS(TM) technology including governmental regulatory agencies and industrial partners. This project will give you a great opportunity to apply your engineering expertise and gain experience in process implementation and technology transfer.

For further information please contact,

Michael Jenkin (jenkin@cse.yorku.ca) or Michal Organ (organ@yorku.ca)




Attentive Sensing for Better Two-Way Communication in Remote Learning Environments

Supervisor: James Elder

Required Background: General CSE408x prerequisites, good programming skills, good math skills, knowledge of C and MATLAB programming languages

One of the challenges in remote learning is to allow students to communicate effectively with the lecturer. For example, when a student asks a question, communication will be more effective if the instructor has a zoomed view of the student’s face, so that s/he can interpret expressions etc.

The goal of this project is to apply attentive sensing technology (www.elderlab.yorku.ca) to this problem. This technology is able to monitor a large environment such as a classroom and direct a high-resolution ‘attentive’ sensor to events of interest.

In particular, working with a senior graduate student or postdoctoral fellow, the successful applicant will:

  1. Study the problem of detecting hand-raises in the preattentive sensor stream
  2. Implement algorithms for detecting hand-raises based upon this investigation
  3. Evaluate these algorithms in a real-classroom setting, using proprietary attentive sensing technology




Attentive Sensing for Sport Video Recording Markets

Supervisor: James Elder

Required Background: Good programming skills; Good math skills; Knowledge of C and MATLAB programming languages

The goal of this project is to modify York University’s patented attentive sensor technology to the sport video recording market. Specific application domains under investigation include skiing, indoor BMX parks, and horse tracks.

The general problem is to use attentive sensing technology (www.elderlab.yorku.ca) to visually detect and track multiple moving agents (e.g., skiers, riders, horses) and to select specific agents for active high-resolution smooth pursuit.

The student will work with senior graduate students, postdoctoral fellows and research scientists to help modify the attentive sensing technology to operate in these domains. Specific tasks include:

1. Ground-truth available datasets 2. Evaluate current attentive algorithms on these datasets 3. Modify these algorithms to improve performance on these datasets




Mining Software Repositories Data

Supervisor: Zhen Ming (Jack) Jiang (zmjiang at cse dot yorku dot ca)

Required Background: Good programming skills in Java; Good analytical and communication skills; Knowledge in AI and statistics; Interested in large scale software analysis

Short Description: Software engineering data (e.g., source code repositories and bug databases) contains a wealth of information about a project's status and history. The research on Mining Software Repositories (MSR) aims to transform the data from static record-keeping repositories into knowledge, which can guide the software development process. For example, one can derive correct API usage patterns and flag anomalous (and potentially buggy) API usages by mining the source code across many projects in GitHub and Google Code. In this project, the student(s) will research and develop an efficient infrastructure, where MSR researchers and practitioners can share and analyze such data.




Model-based Design and Development of Embedded Systems with Code Generation Tools

Supervisor: Jia Xu

Required Background: At least a B+ in Embedded Systems (CSE3215), MATLAB, C programming skills, solid experience in using a microcontroller such as Arduino.

Project Description:

Model-based design with code generation tools can be used for simulation, rapid prototyping, and hardware-in-the-loop testing of embedded systems. This project explores model-based design and development of embedded systems on various hardware platforms with code generation tools. The selected student will develop and test embedded systems using model-based design and code generation tools such as MathWorks MATLAB /Simulink Coder.




C2000 Concerto Microcontrollers

Supervisor: Jia Xu

Required Background: At least a B+ in Embedded Systems (CSE3215), strong C programming skills, solid knowledge of microcontrollers

Description: The C2000 Concerto family of microcontrollers combines two cores on a single-chip with on-chip low latency interprocessor communication between the two cores: a C28x 32-bit control core for real-time control with faster/more loops and small sampling window; and an ARM 32-bit Cortex-M3 host core for communications and general purpose. The selected student will evaluate the capabilities of the C2000 Concerto family of microcontrollers through testing and investigating open source software for real-time control applications that runs on C2000 Concerto Microcontrollers.




Real-Time Bidding Platform

Supervisor: Jia Xu

Required Background: At least a B+ in Operating System Fundamentals (CSE3221), strong Ubuntu/Linux, C++ programming, GCC, TCP/IP skills

Description: Real-time bidding (RTB) is a new method of selling and buying online display advertising in real-time one ad impression at a time. Once a bid request has been sent out, all bids must be received within a strict deadline - generally under 100 milliseconds, including network latency. This project explores RTBkit, an open source SDK allowing developers to create customized real time ad bidding systems (for Media Buyers/Bidders).

Circuit and Board Design for a Pulsed Ground Penetrating Radar

Supervisor: Sebastian Magierowski

Description: The project requires the construction of components for a ground penetrating radar. The students would have to design microwave boards for the high-frequency components of this unit, on both the transmitter and the receiver. On the transmitter side the board would take a 5-MHz input clock, run it through a series of off-the-shelf amplifiers and then through a shaping circuit that would convert the input into an outgoing series of pulses (still at 5-MHz repetition rate) less than 400-ps in duration each. The bandwidth of the signal is roughly 2-8 GHz and hence requires very careful board layout. The receiver would be a time-shifted sampler, used to sample the returning pulses in progressive periods. This radar circuit is ultimately intended to be positioned on a rover doing ground analysis.

Required Background A background in undergraduate-level electronics is very important. Experience with board level implementations and knowledge of microstrip lines would be helpful, otherwise the basics would have to be picked up during the project.



Some projects proposed in earlier semesters:




Tracking and Activity Recognition Through Consensus in Distributed Camera Networks

Supervisor: Amir Asif

Required Background: Computer Vision or Signal and Systems Course preferred; Matlab; Interest in Signal/Image Processing

Short Description: Over the past decade, large-scale camera networks have become increasingly popular in a wide range of applications, including: (i) Sports analysis; (ii) Security and surveillance; (iii) disaster response, and; (iv) Environmental modeling, where the objective is to follow the trajectory of a key target, for example, a star player in a soccer game or a suspect in a surveillance environment. In many applications, bandwidth constraints, security concerns, and difficulty in storing and analyzing large amounts of image data centrally at a single location necessitate the development of distributed camera network architectures. In this project, we investigate distributed scene analysis algorithms, where each camera estimates certain parameters of the target using a signal processing algorithm based upon its own set of observations. The local estimates are then shared with the neighboring cameras in an iterative, goosip-type fashion, and a final estimate is computed across the network using consensus algorithms. The selected student will develop Matlab code to apply distributed signal processing algorithms [1,2] that have been developed in the Signal Processing and Communications lab for target tracking and activity recognition in distributed camera networks.

[1] A. Mohammadi and A. Asif, Distributed Particle Filter Implementation with Intermittent/Irregular Consensus Convergence, IEEE Transactions on Signal Processing, 2013. http://arxiv.org/abs/1112.2431.

[2] A. Mohammadi and A. Asif, Decentralized Sensor Selection based on the Distributed Posterior Cramer-Rao Lower Bound, in proceedings of IEEE International Conference on Information Fusion, Singapore, 2012. pp. 1668-1675.

3D Drawing System with Leap Motion finger tracker

Supervisor: Wolfgang Stuerzlinger

Required Background: 3D computer graphics, C/C++ coding

The Leap Motion, leapmotion.com, is a new device that lets users control a computer with their fingers. This project creates a new 3D drawing system that enables users to quickly generate 3D solids.

3D Drawing System with 3Gear gesture tracker

Supervisor: Wolfgang Stuerzlinger

Required Background: 3D computer graphics, C/C++ coding

The 3Gear system, threegear.com, lets users control a computer with their hands and fingers. This project creates a new 3D drawing system that enables users to quickly generate and modify 3D solids.

Tilt Target Selection on Touchscreen Phones

Supervisor: Scott MacKenzie

Required Background: General 4080 prerequisites, CSE3461, and (preferably) CSE4441. Interest in user interfaces and human-computer interaction (HCI). Students can use their own Android phone for the project or one supplied by the course supervisor.

Touchscreen mobile devices commonly use a built-in accelerometer to sense movement or tilting actions of the device. Tilt is commonly used the change the orientation of the display between portrait and landscape. Gaming is another common use for tilting actions. However, tilt may also be used for target selection, as a replacement for touch. This research project will evaluate tilt as an input primitive for target selection on touchscreen mobile devices.

Readings: MacKenzie, I. S., & Teather, R. J. (2012). FittsTilt: The application of Fitts’ law to tilt-based interaction. Proceedings of the Seventh Nordic Conference on Human-Computer Interaction – NordiCHI 2012, pp. 568-577. New York: ACM.

Attentive Sensing for Better Two-Way Communication in Remote Learning Environments

Supervisor: James Elder

Required Background: General CSE408x prerequisites, good programming skills, good math skills, knowledge of C and MATLAB programming languages

One of the challenges in remote learning is to allow students to communicate effectively with the lecturer. For example, when a student asks a question, communication will be more effective if the instructor has a zoomed view of the student’s face, so that s/he can interpret expressions etc.

The goal of this project is to apply attentive sensing technology (www.elderlab.yorku.ca) to this problem. This technology is able to monitor a large environment such as a classroom and direct a high-resolution ‘attentive’ sensor to events of interest.

In particular, working with a senior graduate student or postdoctoral fellow, the successful applicant will:

  1. Study the problem of detecting hand-raises in the preattentive sensor stream
  2. Implement algorithms for detecting hand-raises based upon this investigation
  3. Evaluate these algorithms in a real-classroom setting, using proprietary attentive sensing technology

Attentive Sensing for Sport Video Recording Markets

Supervisor: James Elder

Required Background: Good programming skills; Good math skills; Knowledge of C and MATLAB programming languages

The goal of this project is to modify York University’s patented attentive sensor technology to the sport video recording market. Specific application domains under investigation include skiing, indoor BMX parks, and horse tracks.

The general problem is to use attentive sensing technology (www.elderlab.yorku.ca) to visually detect and track multiple moving agents (e.g., skiers, riders, horses) and to select specific agents for active high-resolution smooth pursuit.

The student will work with senior graduate students, postdoctoral fellows and research scientists to help modify the attentive sensing technology to operate in these domains. Specific tasks include:

1. Ground-truth available datasets 2. Evaluate current attentive algorithms on these datasets 3. Modify these algorithms to improve performance on these datasets

Continuation of a Path Diagram to Syntax Application

Supervisor: Jeff Edmonds

Required Background: General CSE408x prerequisites

Recommended Background: Java software development

Structural equation modeling (SEM) is a statistical technique that is becoming increasingly popular in the educational and behavioral sciences. SEM allows researchers to test the validity of hypothesized models involving complex relationships among multiple variables. Collected data is used to estimate the parameters of the equations and assessing the fit of the model.

The software required is an application that allows researchers to define their hypothesized models visually and will output the correct syntax for the analytical software of their choosing.

To date a promising functional application has been developed in JAVA by a Computer Science student as a 4080 project. The existing software allows the user to draw a path diagram and outputs code for the R package sem. There are a number of improvements to be made (refinements and additions to graphical user interface) and then the application needs to be extended to output syntax appropriate for additional software applications (openMX, MPlus and EQS). Though this project may not begin at “the first stages” of the software lifecycle, this scenario is likely common in the software development market. In addition, the student will be working with a primary “client” who is far less technically advanced, which is also reflective of real-world situations.

More details here.

Enabling SaaS access to an experimental AI planner

Supervisor: Sotirios Liaskos (liaskos at yorku dot ca)

Required Background: Good knowledge of Unix tools / Python, Perl or Awk. Comfort with algorithms and programming. Essential: 2031 – Software Tools. Desired: 3402 – Functional & Logic Programming, 3101 – Design and Analysis of Algorithms, 4302 – Compilers and Interpreters.

Description: This project involves enriching and integrating a set of fairly complex scripts, which are components of an Artificial Intelligence (AI) planner, and exporting them to the public in a Software-as-a-Service (SaaS) fashion.

The components are various Unix executables and LISP programs that need to interact in complex ways. The components may be residing in different servers in different universities. Currently integration is performed manually, at the expense of usability. Thus, we aim at constructing a module that: (a) integrates involved components to deliver output in one call, (b) exports a unique web interface (preferably following WSDL/SOAP) to be easily accessed by custom front-end tools by anyone, anywhere, (c ) offers a simple front-end for human users.

Learning objectives:

Predicting Angular Error in Rigid Registration

Supervisor: Burton Ma

Description: Registration is a fundamental step in image-based surgical navigation. Several (seemingly) different approaches for predicting distance errors in registration are known, but for some surgical procedures, the angular error in registration is more important. This project will validate an approach for predicting angular error in registration; the student will use a combination of simulated and actual registration data for testing purposes.

Calibration of a Tracked Pointer

Supervisor: Burton Ma

Description: Tracked pointers are the most common tools used in surgical navigation systems. A typical pointer has a tracked target on one end and a sharp or ball tip on the other end. Finding the location of the tip relative to the target is a calibration problem. One solution to the calibration problem involves pivoting the pointer about the tip while tracking the target; if the tip is kept stationary, then the target moves on the surface of a sphere. Fitting the tracking data to the surface of a sphere yields the location of the tip as the sphere center. Unfortunately, the calibrated tip position obtained using such a spherical calibration has high variance. This project will investigate how much variance there is in the calibrated tip position, and methods for reducing the variance of the calibrated tip position.

A privacy safeguard framework for sharing photos on Facebook

Supervisor: Uyen Trang Nguyen

Description: One of the major privacy concerns in Online Social Networks is photo sharing. A user may post his/her friends’ photos without their consent. The friends have no control over the user’s Facebook activities, namely photo sharing. In this project, we design and implement a third-party Facebook application that allows people to protect their identities in photos uploaded by another user without their consent.

Required prerequisite background: Proficiency in programming, especially in Java and Web application programming.

Desired prerequisite: Knowledge of image processing, Facebook API, JavaScript Object Notation (JSON)


(These projects were proposed in Summer 2011. Listed in alphabetical order of the supervisor's last name.)


Simulation for Forest Fire Detection

Supervisor: Rob Allison

Required Background: General CSE408x prerequisites

Recommended Background: CSE3431 or CSE4471 or equivalent

Description

Detection of forest fires is a challenging activity that requires considerable training. The objective of this project is to implement a virtual reality simulation to incorporate key aspects of this task and then to perform an evaluation with a small user study.


Study of self-motion perception in microgravity

Supervisor: Rob Allison

Required Background: General CSE408x prerequisites

Recommended Background: CSE3431 or CSE4471 or equivalent

Description

This is a computer graphics project to present visual motion stimuli to an observer. The software will experimentally control scene content, collect user responses and control the camera trajectory to simulate the desired self-motion profile.


Stereoscopic cinema calculator

Supervisor: Rob Allison

Required Background: General CSE408x prerequisites

Recommended Background: CSE3431 or CSE4471 or equivalent

Description

Directors of three-dimensional movies sometimes use 'stereo calculators' to compute the simulated depth of objects in the film show to the viewer in order to maximize the stereoscopic effects and maintain comfortable viewing. However current calculators have limited ability to visualize the results of the calculations. This project will combine stereo calculations with visualization software to assist the director in artistic and technical decisions.


Computer pointing devices and the speed-accuracy tradeoff

Supervisor: Scott MacKenzie

Required Background: General 4080 prerequisites, CSE3461, and (preferably) CSE4441

Recommended Background: Interest in user interfaces and human-computer interaction (HCI). Understanding of experiment design. Experience in doing user studies.


One key text entry

Supervisor: Scott MacKenzie

Required Background: General 4080 prerequisites, CSE3461, and (preferably) CSE4441

Recommended Background: Interest in user interfaces and human-computer interaction (HCI). Understanding of experiment design. Experience in doing user studies.


The Algorithmics Animation Workshop

Supervisor: Andy Mirzaian

Required background: General prerequisites

Recommended background: CSE 3101

Description

The URL for Algorithmics Animation Workshop (AAW) is http://www.cs.yorku.ca/~aaw. The main purpose of AAW is to be a pedagogical tool by providing animation of important algorithms and data structures in computer science, especially those studied in courses CSE 3101, 4101, 5101, 6114, 6111. This is an open ended project in the sense that more animations can be added to this site over time.


Selenium/Eiffel Web Test Driven Development

Supervisor: Jonathan Ostroff

Required background: General prerequisites, at least a B+ in CSE 3311

Recommended background: Knowledge of Javascript a plus

Description

The Selenium IDE is an integrated development environment for Selenium scripts. It is implemented as a Firefox extension, and allows you to record, edit, and debug tests of web applications. The Selenium IDE is a recording tool, or you may edit your scripts by hand. With autocomplete support and the ability to move commands around quickly, Selenium IDE is the nice environment for creating webtests no matter what style of tests you prefer.

Tests can be translated to Java (JUnit), C#, Python etc. It can be extended to any language that can make HTTP calls.

The goal of this project is (1) to translate Selenium tests into tests that can be run under Eiffel (e.g. via ESpec or AutoTest), and (2) to provide a complete Eiffel web application creation template (with embedded database such as sqlite) for creating and testing web applications.


Automated Reasoning System for Quantified Propositional Logic

Supervisor: Zbigniew Stachniak

Required background: General prerequisites

Recommended background: Passion for programming and experimentation; Some knowledge of propositional and predicate logic

Description

Quantified Propositional Logics (QPL) plays an important role in a number of computer science disciplines from the theoretical computer science to knowledge representation and verification. There are also a number of open problems concerning this logic, and formulated more than 70 years ago, that can be finally solved (or at least approached) using automated reasoning techniques. The first step in such investigations has to be the design and implementation of a theorem prover, or automated reasoning system, for QPL. Such a system should, in principle, be able to determine whether or not a given formula of QPL is a theorem (or a tautology) in this logic.

The theorem prover for QPL is to be designed, implemented, and fully tested.

Background: Various variants of QPL have been formally formulated for the first time in the 1920s by a number of logicians and mathematicians. In modern computer science, QPL plays a significant role in theoretical computer science (proof complexity, satisfiability) as well as in verification and AI.


NABU Network Emulator

Supervisor: Zbigniew Stachniak

Required background: General prerequisites

Recommended background: Java (including 2D graphics); Some knowledge of PC hardware architecture; Some knowledge of (any) assembler language is an asset.

Description

Have you ever considered writing your own emulator of an interesting system? There has been a substantial activity in building software emulators of historically significant computers, game consoles, and, recently, smart communication devices. As a result, there is at least one emulator of almost every significant system. This activity contributes, in the first place, to the preservation and dissemination of significant hardware and software technologies. It also allows for cost-effective development of contemporary software and hardware. The project's objective is to design and implement an emulator of the NABU Network – one of the earliest “proto-Internet” networks. The emulator is to be implemented in Java.

Background : The NABU Network was designed and implemented by a Canadian company NABU Manufacturing between 1981 and 1983. The underlying idea behind the network was to link home personal computers to cable television networks which would supply a continuous, high speed stream of computer programs and information (at the rate of 6.5 Mbits per second) to almost an unlimited number of users. Cable television was a uniquely ideal technology for NABU to deliver software and data to home computers because of its high bandwidth and networking capabilities. After the official launch on Ottawa Cablevision in October of 1983, the NABU Network was introduced by Ottawa's Skyline Cablevision in 1984 and a year later in Sowa, Japan, via a collaboration between NABU and ASCII Corp. NABU Network subscribers could rent or buy a NABU PC and dedicated network adaptor, and use an ordinary television set as a display monitor. Once connected to the network, a user could choose from various application programs and services in categories including entertainment, information and guides, education, and professional programs. Dedicated NABU magazines, newsletters, programming guides, and user groups provided subscribers with supplementary information and support. To learn more, visit here .


Robotic tangible user interface for large tabletops

Supervisor: Wolfgang Stuerzlinger

Required Background: General CSE4080 prerequisites

Recommended Background: CSE3431 or equivalent

Description

Tangible user interfaces provide the user with object that they can touch and use as input devices. One example is the use of (tracked) toy houses to perform a city planning task on a large surface. This project implements a new form of tracking/identification scheme for tangible objects via LED arrays mounted on them. Furthermore, and using robotic components, the tangible objects will have the ability to move around autonomously, which enables important functionalities such as undo and replay.


Better Layout Mechanisms for User Interfaces Toolkits

Supervisor: Wolfgang Stuerzlinger

Required Background: General CSE4080 prerequisites

Description

The layout mechanisms for many GUI toolkits are hard to understand and often difficult to use. This project investigates new, easy-to-understand layout mechanisms and evaluates an implementation of one of them in a comparative user study. Platform: any modern GUI toolkit.


Predicting Visibility Obstructions for a 6DOF Tracker

Supervisor: Wolfgang Stuerzlinger

Required Background: General CSE4080 prerequisites

Description

Previous work of the supervisor generated a novel and highly accurate Virtual Reality tracking system based on (eye-safe) laser diodes. The speed and accuracy of this system matches or exceeds the specification of all competing commercial systems. However, this system works only in 5 or 6-sided immersive display environment. Recent work has adapted the system to track successfully with as little as one large display wall and has also characterized the accuracy more comprehensively. The next step is to generalize the system to work in normal rooms, which may have lamps, shelves, etc. Here, visibility obstructions play a significant role and predicting these obstructions can be used to increase the tracking accuracy. This project will simulate a new method for visibility obstruction prediction to detect how big an increase in accuracy can be expected.


Extensions to a 3D Modeling System

Supervisor: Wolfgang Stuerzlinger

Required Background: General CSE4080 prerequisites

Description

K-3D is a successful, open-source, 3D modeling system, that can even deal with million-polygon models in real-time. This project aims to improve the user interface for K-3D by adding several novel 3D manipulation techniques. While all the mentioned operations already exist in in K-3D, the user interfaces are typically fairly inefficient and/or require significant learning. Depending on the outcome, the results of each project may even be merged back into the K-3D distribution. Each of the following two items can be considered a separate project:

Integration of an existing implementation of a 3D sliding technique, which greatly facilitates 3D object movement. The ability to draw new “lines”, rectangles, and other 2D constructs in a simple manner onto surfaces. This ability greatly simplifies many interesting operations, such as the creation of extrusions, holes, etc.