# Towards a Cloud-Based Smart Office Solution for Shared Workplace
Individualization

Dominik Hasiwar1, Andreas Gruber1, Christian Dragschitz1 and Igor Ivkić1,2
1University of Applied Sciences Burgenland, Eisenstadt, Austria
2Lancaster University, Lancaster, U.K.
{2210781002, 2210781009<EMAIL_ADDRESS><EMAIL_ADDRESS>
https://orcid.org/0000-0003-3037-7813

###### Abstract

In the evolving landscape of workplace dynamics, the shift towards hybrid
working models has highlighted inefficiencies in the use of traditional office
space and the need for an improved employee experience. In this position paper
we propose a Smart Office solution that addresses these challenges by
integrating a microservice architecture with Internet of Things (IoT)
technologies to provide a flexible, personalized workspace environment. The
position paper focuses on the technical implementation of this solution,
including the design of a Workplace Environment Index (WEI) to monitor and
improve office conditions. By using cloud technology, IoT devices with
sensors, and following a user-centred design, the proposed solution shows how
Shared Open Workspaces can be transformed into adaptive, efficient
environments that support the diverse needs of the modern workforce. This
position paper paves the way for future experimentation in real-world office
environments to validate the effectiveness of the Smart Office solution and
provide insights into its potential to redefine the workplace for improved
productivity and employee satisfaction.

##  1 INTRODUCTION

The COVID-19 pandemic initiated a critical and unforeseen shift in workplace
dynamics, forcing companies to quickly move from a traditional zero home
office policy to a 100% home office model. This drastic change out of
necessity has gradually evolved into a hybrid work culture that includes a
combination of remote and in-office work. In the post-pandemic landscape, this
shift has brought flexibility, improved employee satisfaction and significant
reductions in operational costs such as heating, electricity, and maintenance.
However, it has also led to a noticeable inefficiency in the use of office
space. The changing presence of staff, with some working remotely while others
are on site, often leaves office desks unoccupied. This represents a clear
inefficiency in the current office layout and highlights the need for more
open and adaptable environments to optimize the use of office space and
reflect the changing nature of work in the post-pandemic era [Elias, 2023].

Building on the idea of reconfigured office spaces, the concept of Shared Open
Workspaces offers a promising solution where, for example, employees can
reserve desks for daily use. This model increases the efficiency of office
space use and fits well with the flexible nature of the hybrid working model.
However, there is a notable trade-off in terms of personalization and comfort.
In such environments, the lack of customizable elements such as ergonomic
adjustments, personal memorabilia (e.g. family pictures) and preferred desk
locations can affect the sense of belonging and comfort at work. In addition,
the varying environmental conditions within the workspace, such as uneven
temperature, humidity, or noise levels, can have a significant impact on an
employee’s productivity and well-being. Some may find themselves in less than
ideal conditions, which can lead to long-term discomfort or dissatisfaction.

Addressing these challenges requires an approach that improves the efficiency
of Shared Open Workspaces while allowing employees to personalize their
individual workspace. The overall aim of this approach should be to reconcile
the benefits of office space optimization with the personal needs and comfort
of each employee.

In response to the challenges identified, this position paper presents a
cloud-native solution based on a microservice architecture, comprising three
main services to improve the experience within Shared Open Workspaces. The
first service (Workspace Management Service) can be used to create and manage
workspaces (offices) and their workplaces (desks), while the second service
(Workplace Individualization Service) enables workplace customization. This
includes personalizing of each workplace by enabling ergonomic adjustments
(e.g., desk height) and personalized memorabilia (e.g., digital frames
displaying private photographs). This service also collects environmental data
using sensors to monitor conditions such as temperature, humidity, and noise
levels. Finally, the third service (Workplace Booking Service) offers
employees the flexibility to reserve and activate their workspaces, which
adapt to their preferences when activated. Together, these services aim to
create a dynamic, user-friendly, and adaptable Shared Open Workspace
environment.

The remainder of this paper is organized as follows: Section 2 summarizes the
related work in the field. Next, in Section 3, we present the architectural
building blocks of the proposed Smart Office solution. Furthermore, we propose
a methodological approach to calculate a Workplace Environment Index (WEI)
based on the collected environmental data. In this context, we explain how the
WEI can be used to rank workplaces, or even to improve their environmental
conditions of them. Finally, Section 5 concludes our work and outlines future
work in the field.

##  2 RELATED WORK

In the research area of smart offices, office productivity, and smart
workplace environments, a number of studies have focused on the impact of
various physical and technological factors on employee performance and well-
being. Mak and Lui (2011), and Leaman (1995) evaluated the impact of
environmental influences on productivity, highlighting the effects of sound,
temperature, and overall satisfaction with workspace conditions.

Porras-Salazar et al. (2021) conducted a meta-analysis on the effects of room
temperature on work performance in the office and examined 35 studies to
assess the relationship between air temperature and cognitive performance in
office environments. Lusa et al. (2019) focused on multi-space offices,
linking workspace design elements like furniture and acoustics to employee
well-being and satisfaction.

Öhrn et al. (2021), and Hanif and Saleem (2020) examined the effects of office
design variations, including Activity-Based Flex Offices and different
university library layouts, on productivity and employee satisfaction.
Pitchford et al. (2020) contributed an experimental perspective by comparing
different office designs in a technology company, highlighting preferences for
zoned open-plan and team office designs.

Robertson et al. (2013) focused on ergonomics, demonstrating the benefits of
ergonomic training and sit-stand workstations on worker performance and
discomfort. Wells’ (2000) study explored the role of personalization in the
office, demonstrating its significant impact on employee well-being and job
satisfaction, with gender-based differences in personalization practices.

In the research area of smart office environments, Zhang et al. (2022)
reviewed Internet of Things (IoT) and Artificial Intelligence (AI)
applications for employee health promotion, while Choi et al. (2015) presented
a smart office energy management system using Bluetooth Low Energy (BLE)
beacons and a mobile app. Bhuyar and Ansari (2016) describe an integrated
smart office automation system, demonstrating the usefulness of IoT
technologies in improving office environments.

Ryu et al. (2015) proposed an Integrated Semantics Service Platform for smart
offices, emphasizing semantic interoperability in IoT-based services.
Tuzcuoǧlu et al. (2015) provided a user-centric exploration of smart office
environments, highlighting the importance of understanding user expectations.
Finally, Uppal et al. (2021) introduced a cloud-based IoT system for smart
offices, focusing on device health monitoring and fault prediction to enhance
employee well-being.

Summarizing, the identified studies provide a multifaceted view of how
physical, ergonomic, and technological elements interact to shape the modern
office environment and influence employee productivity, satisfaction, and
well-being. However, they have not fully explored the use of IoT devices
combined with a management application to personalize workspaces and monitor
environmental factors in a flexible workplace culture. The proposed Smart
Office approach aims to fill this gap by providing a comprehensive solution
that combines workspace personalization with environmental monitoring and
control, leveraging IoT and cloud technology.

##  3 SMART OFFICE SOLUTION

Figure 1: Architectural Building Blocks of the Smart Office Solution.

In this section, we present the technical implementation of the proposed Smart
Office solution. First, we provide an overview of the architectural building
blocks and explain the high-level architectural design. Next, we describe the
three core microservices of the proposed solution and explain how they can be
used to manage, individualize and book workplaces in a Shared Open Workspace
environment. Finally, we present two mobile apps and explain how they can be
used by regular users and administrators to interact with the Smart Office
solution.

###  3.1 Architectural Building Blocks

The Smart Office is designed as a set of independent microservices, each
providing a distinct functionality, yet seamlessly integrating to form a
robust and agile application environment. The solution also relies on a number
of other components and managed services that are used in a typical
microservice architecture. Figure 1 shows the individual components of the
Smart Office application environment. This cloud-native approach not only
improves the maintainability of the application, but also unlocks the full
potential of cloud capabilities (managed services, auto-scaling, fault
tolerance, and distributed processing).

At its core, the Smart Office is orchestrated within Kubernetes, an open-
source platform that automates the deployment, scaling, and management of
containerized applications. This ensures that each microservice is efficiently
managed and scaled to meet the dynamic needs of the application requirements.
Kubernetes plays a central role in maintaining the resilience and elasticity
of the application, enabling the seamless handling of variable workloads
[Sharma, 2022].

Complementing the microservice architecture, the Smart Office uses the
database-per-service pattern, where each microservice has its own database.
This approach emphasizes the principle of loose coupling, by ensuring that
each service is completely independent in terms of data management [Kumar and
Shastry, 2017]. These dedicated database instances are provided by a managed
database service, which abstracts away the complexities of database management
such as provisioning, scaling, backup, and recovery. This ensures that the
data processing aspect of the Smart Office is robust, secure, and performance
optimized.

In addition to the architectural components already mentioned, another
important element of the Smart Office is the message broker. This application
unit acts as an intermediary between the individual microservices and IoT
devices, enabling the exchange of information. Using a publish-subscribe
model, the microservices and IoT devices can publish messages or subscribe to
specific topics without having direct knowledge of each other. This model
increases the scalability and flexibility of the system, allowing services and
devices to be easily added or changed without disrupting the entire
application.

In addition to the Smart Office microservices, the individual IoT devices
installed on site at each workplace play an essential role in the overall
functionality of the application. These devices have two main functions. The
first is to manage the customizable features of a workplace, such as operating
a digital picture frame or controlling a height-adjustable desk. This
functionality allows for a personalized and adaptable work environment,
tailored to a user’s individual preferences. The second function of the IoT
devices is to monitor environmental conditions. Through connected sensors,
they collect environmental data such as temperature, $CO_{2}$ concentration,
and humidity to ensure a healthy and conducive working environment.

Although each of the components presented so far plays an important role in
the overall application architecture, the Smart Office microservices and
mobile applications are at the heart of the application. The entire business
logic of the solution is encapsulated in these application elements. The
following sections provide a detailed introduction to their specific functions
and responsibilities.

###  3.2 Workspace Management Service

By mapping each individual workplace as a digital object within the
application, the Workspace Management Service provides a detailed and dynamic
view of the office space and facilitates the efficient management and
allocation of workplaces. Beyond simple mapping, the Workspace Management
Service carefully monitors the allocation of available workplaces, ensuring
optimal utilization of the office space while also keeping track of the
customizable attributes of each workplace. These attributes, which currently
include features such as a digital picture frame or a height-adjustable desk,
greatly enhance the user experience by allowing the work environment to be
tailored to individual preferences. Importantly, the architecture of the
system is designed for future adaptability, allowing additional features to be
seamlessly integrated as new technologies emerge.

###  3.3 Workplace Individualization Service

The Workplace Individualization Service specializes in the management and
aggregation of personalized data specifically tailored to individual work
environments. By focusing on personalized data collection, this service plays
an important role in optimizing the work experience through a tailored
approach that addresses the unique needs of each workplace. The service’s
responsibilities fall into three distinct categories:

  * •

Ergonomic adaptability

  * •

Personal memorabilia

  * •

Environmental data collection

The first category focuses on the management of the data required to operate
the height adjustable desks. This aspect ensures that each workspace can be
physically adapted to meet the ergonomic needs of its user, promoting health
and comfort in the office workspace. The second category relates to the
management of personal memorabilia. This involves managing users’ pictures,
which are displayed in digital picture frames and add a personal touch to any
workplace. In this way, the service helps to create a more familiar and
welcoming working environment, boosting morale and a sense of belonging. The
final category relates to the environmental data collected by the IoT devices,
such as temperature, CO2 concentrations and humidity. This information is then
used to create the WEI which gives administrators a quick overview of the
environmental status of each workplace.

###  3.4 Workplace Booking Service

The Workplace Booking Service is designed to allow users to reserve a specific
(open) workplace for a specific period of time. In addition, the service
provides a comprehensive view of workplace availability, ensuring that users
can easily find and secure a space that meets their needs, thereby increasing
the flexibility and efficiency of office space utilization.

As well as managing reservations, the Workplace Booking Service is also
responsible for the actual activation of a booking. Once a user has booked a
workspace, the service works with other components of the Smart Office
application to personalize the workspace according to the user’s preferences.
This personalization includes adjusting the height of the desk and displaying
user-specific images on a digital picture frame. By integrating information
from multiple sources, the service not only simplifies the reservation process
but also ensures that each workspace is tailored to provide a comfortable,
personalized, and productive environment for each user.

###  3.5 Mobile Applications

The Smart Office microservice application has been complemented by two
specialized mobile applications, each designed to address different user
requirements. The first application is optimized for the regular users of the
Smart Office, offering a user-friendly interface and a range of features
designed to enhance their daily office experience. This includes the ability
to make workplaces reservations, manage personal preferences and customize
individual workplace configurations. Users can personalize their office
environment, from configuring their preferred images on digital frames to
adjusting the height of their desks.

The second application is designed for administrators of the Smart Office
solution, enabling them to manage the complex aspects of office space
utilization and maintenance. Through the application, administrators can
oversee the allocation of workspaces, consolidate user bookings, and monitor
the overall usage of office resources. In addition, the app provides access to
a wealth of environmental data collected from various IoT sensors, including
the insightful WEI. This feature enables administrators to make informed
decisions about workspace management, ensuring optimal use of office space and
maintaining a high standard of workplace environment.

##  4 WORKPLACE ENVIRONMENT INDEX (WEI)

The WEI represents a significant step forward in the management and
optimization of workplace conditions, harnessing the power of IoT technology.
The index is calculated using data collected by an IoT device using various
sensors installed in a workplace. These sensors measure various environmental
parameters such as temperature, humidity and $CO_{2}$ concentration. By
continuously collecting and analysing this data, the WEI provides a
comprehensive, real-time assessment of a workplace’s environmental conditions.
The calculation of the WEI is based on the following general equation:

$WEI=\frac{WEI_{1}*W_{1}+WEI_{2}*W_{2}+...+WEI_{n}*W_{n}}{n}$ (1)

As shown in (1), the WEI is calculated by the sum of weighted ($W_{1}$,
$W_{2}$, …, $W_{n}$) workplace environment measurements ($WEI_{1}$, $WEI_{2}$,
…, $WEI_{n}$) using the IoT device and its sensors divided by the total number
of WEI measurements ($n$). The resulting measurement of each sensor represents
a specific WEI (e.g., $WEI_{1}$) with a corresponding weight (e.g., $W_{1}$)
to be able to emphasize one environmental measurement over another one. This
allows to prioritize certain WEI measurements and give some values more weight
compared to others. For instance, a certain workplace environment measurement
(e.g., temperature) might be more important for a certain workplace compared
to another one (e.g., humidity). In this case the weight of the first
measurement would be higher compared to the second to show which one is more
significant in this specific case.

The WEI in (1) enables to calculate the environment index of a workplace to
evaluate its environmental conditions. This index can further be used when
analysing the booking pattern of certain workplaces to identify the reasons
why some are overbooked while others are not favoured by the employees. In the
following sections, the WEI calculation will be explored in more detail.

###  4.1 WEI Calculation

Based on the general WEI equation from (1), the calculation of the WEI follows
a four-stage approach to ensure accuracy and relevance.

####  4.1.1 Step 1: Define Range of Values

The first step is to establish a range of values for the environmental data to
be measured by determining an optimum, minimum and maximum value for each
environmental parameter. This first step is essential as it lays the
foundation for the subsequent normalization process to ensure that the data
accurately reflects the quality of the workplace environment. The following
table shows an example range of values for the environmental values of
temperature, humidity and CO2 concentration:

Table 1: Min-max Value Range of Environmental Data. |  Minimum |  Maximum
---|---|---
Temperature |  15 ∘C |  30 ∘C
Humidity |  10% |  80%
CO2 Level |  100 ppm |  800 ppm

####  4.1.2 Step 2: Normalization

Once the value ranges are established, the second step is to apply a linear
min-max normalization, as proposed by Vafaei et al. (2016) using the following
equation:

$n_{ij}=\frac{r_{ij}-r_{min}}{r_{max}-r_{min}}$ (2)

The min-max normalization from (2) converts the measured environmental values
into a normalized range from 0 to 1, where the value 0.5 represents the
previously defined optimum or mean value for each parameter. This normalized
scale ensures that the mean value accurately reflects the most desirable
environmental condition and allows a consistent and fair assessment of
different environmental parameters. Based on this, the environmental
measurements of different metrics (with different units) can be aggregated
after the normalization step, allowing the calculation of an overall WEI as
shown in (1).

####  4.1.3 Step 3: Transformation

In the next step, the normalized values are converted to the actual WEI value
range of 0 to 100. This conversion is based on the use of the following
parabolic function:

$f(x)=a(x-h)^{2}+k$ (3)

The idea is to have a parabola that peaks at 0.5 and intersects the x-axis at
0 and 1, corresponding to the minimum and maximum of the normalized values.
The variables h and k represent the vertex coordinates of the parabola. As a
result, the variable h represents the previously established optimal
normalized value of 0.5, while k represents the upper limit of the WEI scale,
which is 100. Solving the equation for the points of intersection of the
parabola with the x-axis gives the actual value of the variable a [Papula,
2018]. Table 2 shows the conversion of the measured example environmental data
into the WEI using the parabolic function:

Table 2: Normalized environmental data. |  Measured |  Normalized |  WEI
---|---|---|---
Temperature |  23.5∘C |  0.57 |  98.04
Humidity |  35% |  0.36 |  92.16
CO2 Level |  600 ppm |  0.71 |  82.36

As shown in Table 2, the initial measured temperature value of 23.5°C was
normalized using the min-max normalization from (2) with its minimum and
maximum values from Table 1. Then the parabolic function from (3) was used to
convert the normalized value of 0.57 to the WEI of 98.04.

####  4.1.4 Step 4: Aggregation

Once all measured values have been converted, the final step is to aggregate
them to calculate the overall WEI for a specific workplace. As previously
mentioned, there may be cases where not all the calculated values contribute
equally to the overall WEI. For this reason, weights are used to emphasize one
result or environmental measure over another. This means that specific
environmental factors can be given more weight than others, depending on their
impact on the workplace environment. Based on the weighted approach, the final
score provides a tailored assessment of the workplace environment that
reflects the unique priorities and needs of each workplace. As a result, the
partial WEI results for the temperature, humidity and the CO2 level as well as
the strategic weighting of the environmental variables are incorporated into
the subsequent equation:

$WEI=\frac{WEI_{T}*W_{T}+WEI_{H}*W_{H}+WEI_{C}*W_{C}}{3}$ (4)

Using the example environmental measurement data from Table 1 and giving equal
weight to each metric, the overall WEI result is 90.85.

###  4.2 WEI Applicability

The calculated WEI can be used as an indicator to evaluate different
environmental conditions of a workplace and calculate an overall score. This
approach enables to monitor the conditions of a workplace in real-time and to
take action to improve or optimize the conditions of a workplace. In addition,
the use of IoT technology demonstrates how a physical work environment can
become smart by dynamically adapting to the user needs.

One of the key advantages of the WEI is its utility in enhancing user
experience within a shared workspace environment. Employees within the Smart
Office can select workplaces that perfectly match their personal preferences
and comfort requirements based on the calculated WEI. This capability is not
only beneficial for satisfying employees’ comfort needs, but also for
optimizing their productivity and well-being. In addition, the WEI can be used
to rank workplaces, providing a clear, data-driven guide to the best
performing environments within a facility. Such a feature democratizes
workplace choice and ensures that all users have access to the spaces that
best suit their needs, thereby promoting a more equitable and satisfying
working environment.

Beyond the benefits to the individual user, the WEI can be an invaluable tool
for facilities management, acting as an early warning system to highlight
potential problems at specific workstations. For example, abnormal temperature
readings could indicate a malfunction in the ventilation system, while
elevated CO2 levels could indicate overcrowding in a particular area.
Furthermore, by correlating WEI data with user booking patterns, facility
managers can gain insight into the environmental conditions that are most
conducive to employee comfort and productivity.

This improved understanding can contribute to more efficient control of
facility systems for heating, cooling and lighting based on real-time
occupancy and usage patterns. Such tailored environmental adjustments not only
improve the overall workplace experience but also contribute to energy
efficiency and sustainability goals. In the area of predictive analytics,
trends in WEI data can predict the need for maintenance or indicate potential
failures in facility services, enabling pre-emptive action to minimize
disruption and improve overall workplace functionality.

##  5 CONCLUSIONS AND FUTURE WORK

The COVID-19 pandemic has been the driving force behind an unprecedented shift
towards hybrid and remote working models, opening up a wide range of
possibilities for reimagining the traditional office space. At the heart of
this transformation is the challenge of optimizing these new working
environments to meet the diverse needs of a dispersed workforce, while
maximizing efficiency and fostering a sense of belonging among employees. In
this paper we proposed a cloud-based Smart Office solution for Shared Open
Workspaces, with a focus on individualization, efficiency within adaptive work
environment.

First, we presented a technological framework using microservice architecture
to manage, personalize, and book office spaces, complemented by mobile
applications for end users and administrators. Next, we presented a model that
uses different environmental measurement metrics (measured by an IoT device
with sensors) and combines them to calculate an overall WEI score. Finally, we
discussed how the calculated WEI can be used to monitor and optimize workplace
conditions, improving employee well-being, and productivity.

The proposed Smart Office solution bridges the gap between workspace
flexibility and personalization needs in hybrid working models. Based on a
microservice architecture and IoT integration, the solution enables scalable,
user-centric office environments. In addition, the WEI score provides
actionable insights into workplace conditions, promoting optimal workspace
utilization and employee satisfaction.

To further support the proposed Smart Office solution, it is essential to
conduct empirical studies or pilot implementations. Therefore, it is planned
to implement the Smart Office solution in a real-world office environment,
incorporating adjustable desks and digital frames for a personalized touch.
This empirical real-world implementation serves as a foundational step not
only for assessing the solution’s effectiveness and practicality but also for
analysing critical aspects such as cost efficiency, security, privacy
concerns, and scalability. By evaluating these facets, the implementation aims
to ensure the solution’s viability in diverse settings and its adaptability to
various user needs and office environments.

The empirical approach will be complemented by a user experience study to
correlate user satisfaction with the WEI outcomes, thereby enabling iterative
refinement of the solution based on actual usage data. A thorough evaluation
of the WEI in a live environment will help to identify and improve both
optimal and underperforming workspaces. The adaptability of the Smart Office
solution to offices of varying sizes and organizational structures is a key
consideration. A detailed scalability study will be conducted to evaluate how
the solution can be effectively scaled up or down, depending on the specific
needs of an organization. This will include exploring modular aspects of the
microservice architecture and the IoT framework to ensure that the Smart
Office solution can be tailored to accommodate different workspace
environments and employee densities.

This position paper paves the way for future research into Smart Office
environments, focusing on sustainability, user engagement, and the integration
of advanced technologies to further enhance the office of the future.

## REFERENCES

  * Bhuyar and Ansari, 2016 Bhuyar, R. and Ansari, S. (2016).  Design and implementation of smart office automation system.  International Journal of Computer Applications, 151(3).
  * Choi et al., 2015 Choi, M., Park, W.-K., and Lee, I. (2015).  Smart office energy management system using bluetooth low energy based beacons and a mobile app.  In 2015 IEEE International Conference on Consumer Electronics (ICCE). IEEE.
  * Elias, 2023 Elias, J. (2023).  Google asks some employees to share desks amid office downsizing.
  * Hanif and Saleem, 2020 Hanif, A. M. and Saleem, Z. (2020).  The Impact of Workplace Design on Employee Productivity: A Comparative Study of University Libraries in China and Pakistan.  15(4).
  * Kumar and Shastry, 2017 Kumar, S. S. and Shastry, P. M. M. (2017).  Database-per-service for e-learning system with micro-service architecture.  In 2017 International Conference On Smart Technologies For Smart Nation (SmartTechCon). IEEE.
  * Leaman, 1995 Leaman, A. (1995).  Dissatisfaction and office productivity.  Facilities, 13(2).
  * Lusa et al., 2019 Lusa, S., Käpykangas, S. M., Ansio, H., Houni, P., and Uitti, J. (2019).  Employee satisfaction with working space and its association with well-being—a cross-sectional study in a multi-space office.  Frontiers in Public Health, 7.
  * Mak and Lui, 2011 Mak, C. and Lui, Y. (2011).  The effect of sound on office productivity.  Building Services Engineering Research and Technology, 33(3).
  * Öhrn et al., 2021 Öhrn, M., Wahlström, V., Harder, M. S., Nordin, M., Pettersson-Strömbäck, A., Bodin Danielsson, C., Olsson, D., Andersson, M., and Slunga Järvholm, L. (2021).  Productivity, satisfaction, work environment and health after relocation to an activity-based flex office—the active office design study.  International Journal of Environmental Research and Public Health, 18(14):7640.
  * Papula, 2018 Papula, L. (2018).  Mathematik für Ingenieure und Naturwissenschaftler Band 1.  Springer Fachmedien Wiesbaden.
  * Pitchforth et al., 2020 Pitchforth, J., Nelson-White, E., van den Helder, M., and Oosting, W. (2020).  The work environment pilot: An experiment to determine the optimal office design for a technology company.  PLOS ONE, 15(5):e0232943.
  * Robertson et al., 2013 Robertson, M. M., Ciriello, V. M., and Garabet, A. M. (2013).  Office ergonomics training and a sit-stand workstation: Effects on musculoskeletal and visual symptoms and performance of office workers.  Applied ergonomics, 44(1):73–85.
  * Ryu et al., 2015 Ryu, M., Kim, J., and Yun, J. (2015).  Integrated semantics service platform for the internet of things: A case study of a smart office.  Sensors, 15(1).
  * Sharma, 2022 Sharma, V. (2022).  Managing multi-cloud deployments on kubernetes with istio, prometheus and grafana.  In 2022 8th International Conference on Advanced Computing and Communication Systems (ICACCS). IEEE.
  * Tuzcuoğlu et al., 2022 Tuzcuoğlu, D., de Vries, B., Yang, D., and Sungur, A. (2022).  What is a smart office environment? an exploratory study from a user perspective.  Journal of Corporate Real Estate, 25(2):118–138.
  * Uppal et al., 2021 Uppal, M., Gupta, D., Juneja, S., Dhiman, G., Kautish, S., et al. (2021).  Cloud-based fault prediction using iot in office automation for improvisation of health of employees.  Journal of Healthcare Engineering, 2021.
  * Vafaei et al., 2016 Vafaei, N., Ribeiro, R. A., and Camarinha-Matos, L. M. (2016).  Normalization Techniques for Multi-Criteria Decision Making: Analytical Hierarchy Process Case Study.  Springer International Publishing.
  * Wells, 2000 Wells, M. M. (2000).  Office clutter or meaningful personal displays: The role of office personalization in employee and organizational well-being.  Journal of Environmental Psychology, 20(3):239–255.
  * Zhang et al., 2022 Zhang, X., Zheng, P., Peng, T., He, Q., Lee, C., and Tang, R. (2022).  Promoting employee health in smart office: A survey.  Advanced Engineering Informatics, 51:101518.


11institutetext: University of Bamberg, Germany
11email<EMAIL_ADDRESS>
# The AppChk Crowd-Sourcing Platform:
Which third parties are iOS apps talking to?

Oleg Geier 11 Dominik Herrmann 11

###### Abstract

In this paper we present a platform which is usable by novice users without
domain knowledge of experts. The platform consisting of an iOS app to monitor
network traffic and a website to evaluate the results. Monitoring takes place
on-device; no external server is required. Users can record and share network
activity, compare evaluation results, and create rankings on apps and app-
groups. The results are used to detect new trackers, point out misconduct in
privacy practices, or automate comparisons on app-attributes like price,
region, and category. To demonstrate potential use cases, we compare 75 apps
before and after the iOS 14 release and show that we can detect trends in app-
specific behavior change over time, for example, by privacy changes in the OS.
Our results indicate a slight decrease in tracking but also an increase in
contacted domains. We identify seven new trackers which are not present in
current tracking lists such as _EasyList_. The games category is particularly
prone to tracking (53 % of the traffic) and contacts on average 36.2 domains
with 59.3 requests per minute.

###### Keywords:

privacy transparency citizen science

##  1 Introduction

Modern smartphone apps communicate with several services at runtime, for
instance, for debugging and tracking as well as displaying advertisements [7,
13]. So far, there are no easily accessible means that allow users to analyze
the communication behavior of apps. This lack of transparency makes
informational self-determination hard to achieve. A user study on information
asymmetries between app providers and users comes to the conclusion that
_strengthening user’s control_ (36 %) and _increasing transparency_ (16 %) are
two of the top three requested measures [3].

While privacy research on desktop devices is well established [12, 14, 15, 18]
and has resulted in a number of transparency enhancing tools, there is a lack
of tools for privacy research on smartphone apps, in particular for the iOS
ecosystem. Existing tools are hard to set up or require a working Jailbreak to
run; only experts can use these solutions. Further, the results of one-off
studies are outdated a few months after publication and often apply to the
considered set of apps only. Many of these publications are not easily
reproducible because they require a special experimental setup. Common setups
require tethering the device to a computer, _jailbreaking_ or _rooting_ the
device, routing the network traffic through a proxy, or patching the kernel to
intercept system calls. Setting up the environment requires expert knowledge
and time, which limits the target audience and the number of tested apps.
Additionally, chances are lower that the study will be replicated whenever a
new OS or app update is available.

We propose the _AppChk_ platform to ease the evaluation for both, privacy
experts and the general public. Our aim is to offer an easily accessible
platform one can use without prior knowledge, which is future-proof, and keeps
security and privacy measures intact. With _AppChk_ we want to establish an
on-going citizen science project to raise awareness for privacy practices in
iOS apps; and create incentives for app providers to reduce third-party
tracking. _AppChk_ consists of two components, an iOS
app111https://github.com/ubapsi/appchk-app and a website (https://appchk.de).
The app records application-specific network traffic; the website displays the
results visually. _AppChk_ allows its users to uncover known trackers as well
as other high-frequented domains that are not considered a tracker yet.
_AppChk_ demands minimal user trust by following a privacy-by-design approach:
The app uses an _on-device_ VPN tunnel, i. e., traffic is not routed over our
servers, and the app considers the headers of DNS queries only. No logging
activity leaves the device unless the user opts in and chooses to upload a
traffic recording to the _AppChk_ website.

##  2 Related Work

Previous studies found that many third-party Android libraries collect
Personally Identifiable Information (PII) and share it with advertising
companies [7, 13]. These libraries often require more permissions than the
application would need, to gain access to PII data like IMEI, IMSI, location,
and sensor-data – in some cases even users’ email addresses, email subjects,
and IP addresses [13].

Claesson et al. [2] find that apps become increasingly consumed by the
advertising business. Grindr, a gay dating platform which performs
particularly bad, shares data with 53 domains, 36 of which are related to
advertising. At least seven contacted domains receive the user’s gender, age,
IP address, GPS location, and a unique device identifier; in four cases even a
unique user id.

The detection of these threats is researched extensively on Android [2, 4, 8,
13, 16]. However, there are only a few studies on iOS. This is in part due to
the more restricted environment and the closed source nature of the OS [9, 10,
11]. Kurtz et al. have developed the testing platform SNOOP-IT for a dynamic
analysis of iOS applications [10]. The analysis requires a jailbroken device
and traces all system calls via objc_msgSend messages. Whenever a dynamic
library is loaded, an API hook injects a tracing module to record all privacy-
related API calls at runtime. The authors extended their approach later with
an automated testing capability (DiOS [11]). DiOS allowed them to scale up the
study and test 1136 apps. Their implemenation is based on Apple’s UI
Automation framework to simulate finger taps and perform screen navigation.
Depending on the desired level of detail, their setup allows to test up to 500
apps daily. In their experiment almost half of all tested apps use tracking
and advertising libraries.

Our setup is closely related to the one proposed by Amrein [1]. The SpySpy app
monitors network traffic directly on the phone. Although the author states
that SSL interception is an unwanted security risk, he does not abandon it
completely. He argues that SSL interception is necessary to fully evaluate
privacy risks. The proposed solution operates in two phases, an app screening
and a network monitoring phase. The first phase uses a MitM server to
intercept HTTPS connections to detect privacy violations. The second phase
uses an on-device proxy to monitor network traffic. The proxy uses the results
of the first phase to warn users about specific apps if necessary. Users can
see the app-analysis results directly in the app.

Maass et al. propose _PrivacyScore_ [15], a platform for website analysis and
comparison. Their work goes beyond pure tracking analysis and evaluates
websites based on security measures and recommended privacy practices. One of
the core features are comparison lists. Websites from the same peer group are
ranked according to the scoring on privacy and security features. The ranking
creates an incentive for website operators to improve by reducing tracking
[14]. Further, the authors provide a tool for data protection authorities and
activists to verify the claims made by providers. With _AppChk_ we aim to
provide a similar service for iOS apps.

Apart from research, there are also tools used in practice; xodus [4] and
TrackerControl [8]. Both projects consider Android apps only. TrackerControl
exposes tracking and allows its users to block tracking selectively.
TrackerControl uses an on-device network proxy for monitoring. xodus displays
tracker usage, it is intended as an app index or app catalog. Their database
is based on static analysis and contains 84855 applications and 340 trackers
(as of February 2021).

##  3 Our Approach

We use an on-device _NEPacketTunnelProvider_ proxy to capture all network
traffic of the device. To the user this is presented as a VPN service. The
advantage of an on-device proxy is that potentially sensitive data like
browsing history and user-specific domains are not sent off to another party
during analysis. Using on-device avoids pitfalls such as misconfigured VPN
servers, which may leak IPv6 traffic or allows DNS hijacking [17]. Finally,
on-device proxies do not have any impact on the speed of data transmission (no
additional latency, no throughput limit). The device connects directly to the
requested target.

The _AppChk_ app only considers the domain names of outgoing connections. We
do not look inside the traffic and hence do not depend on breaking TLS
encryption. This ensures future reproducibility as it does not require a
working Jailbreak or special setup. The _AppChk_ app displays all network
requests in realtime (cf. Fig. 1 left).

Figure 1: Realtime Domain Requests (left), Co-Occurrence Analysis (right)

###  3.1 Design Goals

Our primary goal is to provide a platform that can easily be set up and be
used by everyone, including novice users. _AppChk_ should keep existing
privacy and security measures intact. Therefore, we can not rely on a
Jailbreak (new OS versions will close previous vulnerabilities), TLS
interception (privacy invasion and data integrity), or an external proxy
server (disclosing browsing history, requiring trust in the service provider).
To be future-proof, our app works with TLS enabled and uses only documented
APIs, which allows us to release the app on Apple’s AppStore. Making _AppChk_
available in the AppStore lowers the bar to participate in research. App
evaluation becomes a continuous process and latest releases of frequently used
applications get evaluated more quickly. We provide the _AppChk_ app including
its source code for public interest to keep the service active and up-to-date.
_AppChk_ app and website are designed with ease of use in mind. The app’s
design is unobtrusive yet helpful and the website aids novice users to judge
whether a particular app uses tracking. With enough user-contributed reports,
the website will foster comparability between apps, which might incentivize
app vendors to enter into a competition for more privacy-friendly apps in
their respective category (cf. [14]).

#### Privacy by Design

A recent Washington Post article by Geoffrey Fowler analyzed the newly
introduced privacy labels for apps [5]. Fowler used _Privacy Pro_ , a MitM VPN
app by the company _Disconnect_. Contrary to _AppChk_ , _Privacy Pro_ routes
the traffic over an external VPN server. This does not only require trust in
the provider but may also put privacy at risk. The design of _AppChk_ is not
subject to this limitation. Users can download and use _AppChk_ without prior
explanation by an expert and will immediately see what network connections the
device establishes. Users can further record the network activity within a
short time interval of a few minutes and, if explicitly chosen, share their
recordings on the _AppChk_ website. As a user’s recordings may include domain
names deemed sensitive, the _AppChk_ app displays what information has been
collected. Users can review and delete individual domain names to sanitize the
upload.

#### Data Minimization

_AppChk_ does not collect more information than strictly necessary. Logged
timestamps are only precise to _full seconds_. Further, the _AppChk_ app
minimizes the recorded data before it leaves the device. Absolute time
information is replaced with relative time offsets based on a start date,
which has a precision of _calendar weeks_ only. Moreover, users can configute
the _AppChk_ app to automatically delete logs after a specified amount of
time. This reduces the risk of inferring too much personal information from
historical data that is kept on the device. Further, _AppChk_ minimizes third
party dependencies. The only used dependency is NEKit which is used for DNS
resolving and packet transfer.

#### Transparency & User Control

The _AppChk_ app allows its users to contribute app recordings. As recordings
may include sensitive pieces of information, we have to handle them
diligently. The _AppChk_ app explains what data is shared and how it is used.
Users are not obliged to contribute recordings, nor are they nudged to do so.
We also give users the choice to exclude individual requests, on a subdomain
level, from their contributions. As an additional defense-in-depth measure, we
remove unique domains on the server side if a user sends them mistakingly.
This filtering happens automatically by cross-correlation between different
recordings of the same app. Domains that appear only in a single recording are
removed. Users can also configure _AppChk_ to ignore or block specific domains
(DomFilter). If a domain is _ignored_ , it will not be logged by the _AppChk_
app. If a domain is _blocked_ , _AppChk_ will disconnect all network
connections to that domain. Thus, _AppChk_ can be used as an on-device content
blocker. The filters give users greater control over their data; namely, what
data is persisted and what data is shared with other parties. Lastly, the
_AppChk_ app offers users the option to export their recordings for
independent analysis. _AppChk_ exports the database as is, with everything
ever recorded (and not deleted). Using data exports, users can use the app
without ever sharing information with us.

###  3.2 App Recordings

_AppChk_ can not differentiate between traffic from one application and
another due to technical limitations of iOS. Instead, app recordings capture
the domain names of all outgoing network requests during a particular time
frame. A single recording may include requests from multiple apps and system
background processes. Therefore, we urge users to quit all running
applications before starting a new recording. App recordings temporarily
disable any user set DomFilters. This might violate a user’s decision to
control how their data is processed. However, we made this decision for
comparability reasons, to have an unaltered view of “what happened.” Filters
are mainly used to block third-party tracking – which is exactly what we want
to detect with _AppChk_. Users are notified of the deactivation of filters
when a recording is started.

###  3.3 Continuous Monitoring

Apart from using _AppChk_ for on-the-spot app recordings, users can keep the
app running in the background as an always-on network monitor (and tracking
blocker). As long as _AppChk_ ’s on-device VPN service is active, _AppChk_
will log network requests in the background, independently of recordings.

#### Co-Occurrence Analysis

One problem of looking at network requests alone is the sheer quantity of
requests; some apps issue up to 445.7 requests per minute (cf. Sect. 4). This
would overwhelm users if they would have to analyze each request separately.
Therefore, we provide an in-app context analysis mechanism that relies on the
time correlation of requests. This _co-occurrence analysis_ feature helps
users to attribute seemingly unrelated requests over a longer period of time.
The analysis can also uncover new tracking domains, as many tracking requests
happen in close proximity to one another.

Given a domain name $X$, we look for all domain names $Y_{1..n}$ which
frequently appear simultaneously. Users can choose between different time
windows of up to 30 seconds. With a time window of 0, the correlation function
will consider requests which happened precisely at the same time (exact to the
second). If the window size is greater than 0, results are sorted by close
temporal proximity; requests that occur closer to the request(s) of the
selected domain are preferred.

Co-occurences are displayed in a ranked list, which relies on the weighted
score $(\overline{\Delta t}^{2}+\frac{T}{2}+1)/N$, where $\overline{\Delta t}$
is the mean temporal distance to the selected request entry, $T$ the window
size in seconds, and $N$ the number of requests found within the time window.
$\Delta t$ can be at most $T$ for window sizes greater than zero and is always
0 for a 0-second window. The ranking score strikes a balance between favoring
domains with many requests and favoring domains with very close proximity.
$\overline{\Delta t}^{2}$ prefers temporally closer results, while
$\frac{1}{N}$ prefers results with higher occurrence counts. The weighting
factor $\frac{T}{2}$ favors temporally nearby entries if the window size is
small. We add $+1$ for numerical stability, otherwise a window size of zero
will nullify the numerator.

Figure 1 (right) shows the co-occurrences of the domain app.adjust.com for a
time window of $T=5$ seconds. The domain gum.criteo.com is ranked second, even
though the domain’s requests are temporally closer to the requested domain
(0.79 s vs. 1.14 s on average). The top-ranked domain has over twice as many
intersections (405 vs. 181). The orange-colored bar indicates strong
correlation, e. g., for the fifth rank, more requests balance the higher time
divergence.

##  4 Evaluation

In this chapter, we look at some exemplary use cases for _AppChk_. In
particular, we show what kind of information we can extract from the collected
data. We conclude this chapter with an evaluation of 75 apps, including a
comparison _before_ and _after_ the release of iOS 14, which was announced to
introduce changes to acceptable data uses. We start by introducing the two
datasets used for these analyses.

#### Dataset D1

In one of our evaluation use cases, we compare regional differences between
app developers. For that we consider three geographic regions: Americas,
Europe, and Other. We randomly sample 25 apps per region as follows. First, we
obtain monthly top charts of July, August, and September 2020 for 11 countries
from the app analytics provider _App Annie_.222AU, CA, CN, DE, ES, FR, GB, IT,
JP, RU, UK, and US We consider the Top 20 free apps for each list and month,
yielding 660 apps. Second, we filter this list by removing all duplicates. We
also remove apps that are not available in Germany and apps that have no
company location attached. From the remaining 138 apps we sample 25 apps per
region.

Each of the 75 apps is analyzed separately as explained in the following.
First, a tester (one of the authors of this paper) quits all running
applications and waits five seconds for background processes to finish. Then,
the tester launches an app and uses it extensively to cover as much of the
functionality as possible. Afterward, the tester quits the app and stops the
recording. Whenever an app requires a user login, the recording only includes
data up to the login screen. If present, register, login, and help buttons are
tapped in any case.

Our D1 dataset holds 75 apps, 1093 recordings, 1062 unique domains, and 102
316 individual requests. 45.0 % of all requests and 26.5 % of all domains are
tracking-related. Each app was recorded seven times before and seven times
after the iOS 14 release. All iOS 13 recordings were recorded in the week
before the release (Sept 12 to Sept 15). All iOS 14 recordings were recorded
between Sept 28 and Oct 24.

#### Dataset D2

The second dataset includes all apps from D1, plus an additional 64 apps that
not one of the testers but other users (unknown to us) submitted to the
_AppChk_ website. Most of the additional apps were tested only a single time
($+$76 recordings), limiting the validity of the results. We can use these
recordings, however, to detect additional tracking domains.

###  4.1 Use Case: Tracker Detection

To detect previously unknown trackers, we can cross-correlate data of
different apps and find domains that appear exceptionally often. Even with our
limited dataset of 139 apps in dataset D2, we detect seven domains related to
tracking that are not present in the commonly used tracking lists EasyList,
EasyPrivacy list, Peter Lowe’s Ad and tracking server list, and xodus ETIP
list. We found app-measurement.com (in 77 apps), ocsp.sectigo.com (16), inner-
active.mobi (10), in.appcenter.ms (7), track.atom-data.io (7), liftoff.io (7),
and taobao.com (5). Further, we found that 7 out of 15 subdomains of
unity3d.com (found in 17 apps) are not marked as trackers even though they
should be. Some of these trackers seem to be exclusively designed for specific
mobile operating systems. One of the most-used trackers, app-measurement.com,
is not present in the xodus tracker list. Thus, findings obtained with
_AppChk_ can be used to supplement existing lists of trackers.

Table 1: Tracker usage in apps and total network requests (in percent). | _AppChk_ | Kurtz et al. [11]
---|---|---
Domain | Apps | Requests | Apps | Requests
apple.com | 84.17 | 4.92 | 6.76 | 1.51
app-measurement.com | 55.40 | 2.77 |  |
crashlytics.com | 48.92 | 0.56 | 5.68 | 0.58
facebook.com | 46.76 | 2.67 | 13.96 | 3.47
doubleclick.net | 33.09 | 1.02 |  |
appsflyer.com | 23.74 | 1.87 |  |
adjust.com | 22.30 | 5.47 |  |
googleadservices.com | 9.35 | 0.13 | 3.33 | 1.36
amazonaws.com | 5.76 | 0.14 | 3.60 | 1.30
ioam.de | 5.04 | 0.05 | 5.59 | 1.60
tapjoyads.com | 4.32 | 0.12 | 5.86 | 1.99
flurry.com | 2.16 | 0.06 | 23.15 | 5.41
chartboost.com | 0.72 | 0.05 | 3.33 | 0.84
admob.com | 0.72 |  $<$0.01 | 11.44 | 1.44

Table 1 compares the results of our study to the trackers found by Kurtz et
al. [11]. 22.3 % of the apps in D2 contact adjust.com at least once.
Considering all apps, about 5.47 % of the network requests in D2 are routed to
adjust.com. We observe that the tracker landscape has changed drastically
since 2014. Previously dominant trackers such as flurry.com and admob.com have
a smaller market share than before. Other trackers have grown rapidly and
taken their place. In contrast to our dataset, the dataset by Kurtz et al. did
directly attribute the network traffic to a specific application. In our case,
we also detect requests that originate from other apps or system services.
That could explain why our study detects so much more domain calls to
apple.com.

###  4.2 Use Case: Comparing apps and app groups

#### App Comparison

Maas et al. show that, at least for websites, adding a comparison of different
providers on privacy and security practices creates a competition between
these providers [14]. This competition sets incentives to reduce third party
tracking. _AppChk_ follows suit by allowing direct comparisons between apps:
Users are able to compare two similar apps and decide which of the two
respects their privacy better.

Consider the following example. _Viber_ is an instant messaging app, which was
hyped a few years ago as a secure and privacy-friendly alternative to Skype
and WhatsApp. Their website states: “Our mission is to protect your privacy so
that you never have to think twice about what you can or can’t share when
you’re using Viber.” Figure 2 shows the evaluation results for the Viber app
as displayed on the _AppChk_ website. Users can see, at a glance, whether an
app uses tracking at all and to what extent. Further, users can see how many
domains are contacted and what proportion of requests are known trackers (red
color). In this example, the app connects to 12 different domains, eight of
which are known trackers (crashlytics.com, app-measurement.com, mopub.com,
googlesyndication.com, doubleclick.net, appboy.com, mixpanel.com, and
adjust.com). 66 % of all network requests go to tracking providers.

Figure 2: App results overview with potential trackers highlighted in red.

#### App Comparison Lists

On the _AppChk_ website, users also have the ability to compare lists of apps
with each other. For that, we tabulate key metrics for each app, e. g., the
number of tracking domains, the percentage of tracking domains, and the number
of requests per minute. The results are presented in a configurable and
sortable table.

#### Group Comparison Lists

Comparison groups are similar to app comparison lists but compare groups of
apps against each other, such as _free_ versus _paid_ applications. Han et al.
[6] find that paying for an app does not guarantee an app to be free of
trackers. Most paid apps even reuse the same tracking libraries and
permissions as the free version. With _AppChk_ , we can set up a continuous
evaluation process. For now, groups can only be configured in the backend of
the website, but we plan to allow users to do that on their own as well.

Table 2: Regional differences; each with 25 apps and 219 recordings (min—avg—max). Region | Total Req. | Req. / min | Domains | Subdomains | Tracker
---|---|---|---|---|---
America | 9198 | 3—32—75 | 4—10—21 | 4—20—60 | 0—29—64 %
Europe | 37735 | 1—75—446 | 1—38—184 | 1—65—302 | 0—44—92 %
Other | 13806 | 0—52—169 | 1—13—29 | 0—27—92 | 0—34—75 %

Our dataset D2 does not include any paid applications yet. We can, however,
consider regional differences (cf. Table 2). Our classification depends on the
location of the companies’ headquarters. _Europe_ is doing significantly worse
than the other two regions, if comparing the amount and frequency of contacted
domains. European apps contact, on average, three to four times as many
domains as apps from other regions; simultaneously, the proportion of tracking
domains increases by 10 %.

This result, however, is biased by the skewed distribution of app categories
over regions. The number of games is much higher in the group _Europe_ (eight
games whereas the other regions only have four games each). If we compare by
category (cf. Table 3), we see that the _Games_ category is one of the worst
in terms of tracking. Additionally, the four worst apps overall are in the
_Europe_ region. All four apps (three games, one weather app) connect to at
least 138 different domains each.

Table 3: App categories (in avg or avg—max). An app can have up to three categories. Category | Req. / app | Req. / min | Domains | Tracker
---|---|---|---|---
Books (2) | 52.8 | 49.3—57.2 | 15.0—16 | 33—50 %
Business (10) | 23.1 | 27.3—60.0 | 9.2—18 |  44—75 %
Education (8) | 24.3 | 19.5—54.5 | 8.6—14 | 27—60 %
Entertain. (23) | 49.0 | 32.3—108.5 | 12.5—46 |  37—92 %
Finance (10) | 47.2 | 47.3—88.4 | 10.8—25 | 35—67 %
Food & Drink (5) | 38.3 | 38.5—60.7 | 14.2—21 |  44—65 %
Games (24) | 164.7 |  59.3—417.3 |  36.2—184 |  53—81 %
Health & Fit. (14) | 22.8 | 29.9—147.7 | 7.9—19 | 19—66 %
Lifestyle (25) | 49.2 | 55.1—168.8 | 13.6—46 | 34—68 %
Medical (11) | 39.3 | 18.9—42.9 | 9.0—20 | 18—55 %
Music (7) | 53.6 | 40.0—59.4 | 12.4—26 |  42—92 %
Navigation (8) | 35.7 | 38.4—108.8 | 8.4—21 | 27—54 %
News (7) | 67.2 | 31.6—48.4 | 18.9—73 | 42—67 %
Photo & Vid. (10) | 25.9 | 27.9—53.4 | 8.7—18 | 30—55 %
Productivity (18) | 40.5 | 36.0—95.0 | 10.6—34 | 23—53 %
Reference (5) | 34.1 | 24.8—41.4 | 8.8—14 | 19—50 %
Shopping (12) | 59.4 | 54.9—156.3 | 13.0—25 |  45—65 %
Social Netw. (19) | 24.6 | 32.0—168.8 | 7.9—28 | 27—75 %
Sports (3) | 42.8 | 53.9—82.5 | 15.7—23 | 30—66 %
Travel (9) | 69.9 |  84.5—445.7 |  24.6—138 | 34—60 %
Utilities (17) | 23.8 | 31.9—71.5 | 9.9—34 | 30—66 %
Weather (2) | 171.8 |  229.7—445.7 |  70.0—138 | 22—44 %

###  4.3 Comparison: iOS 13 vs. iOS 14

Our last evaluation example is a comparison study on differences between major
iOS versions. The evaluation is performed on Dataset D1. This study intends to
evaluate Apple’s newly introduced “App tracking controls and transparency”
feature. Our assumption is that the introduction of that feature incentivized
developers to make changes to their apps’ tracking functionalities. We
hypothesize that these changes will reduce the number of connections to
tracking domains.

Table 4: Comparison between iOS 13 and iOS 14 (in total, or avg—max). OS | Rec. | Req. | Req. / min | Domains | Subdomains | Tracker
---|---|---|---|---|---|---
iOS 13 | 549 | 51714 | 53.6—459.2 | 19.9—193 | 37.3—314 | 35.6—90.8 %
iOS 14 | 543 | 50581 | 51.2—302.6 | 20.1—206 | 38.9—351 | 34.0—89.2 %
Table 5: App comparison between major iOS versions (iOS 13 $\pm$ difference in iOS 14). App | Req. / min | Domains | Subdomains | Tracker
---|---|---|---|---
IKEA |  18.3 $-$ 4.9 |  6 $+$ 0 |  11 $+$ 1 |  35.4 $-$ 8.3 %
McDonald’s - Non-US |  59.3 $+$ 3.2 |  21 $-$ 4 |  35 $-$ 9 |  44.4 $-$ 14.4 %
Microsoft Teams |  47.5 $-$ 25.7 |  10 $-$ 3 |  22 $-$ 10 |  13.1 $-$ 2.0 %
Cube Surfer! |  415.5 $-$ 199.1 |  193 $-$ 38 |  314 $-$ 43 |  45.8 $+$ 7.1 %
Spiral Roll |  150.8 $+$ 151.8 |  170 $+$ 36 |  272 $+$ 79 |  48.0 $-$ 0.3 %
Stack Colors! |  117.4 $+$ 158.4 |  175 $+$ 10 |  282 $+$ 38 |  48.0 $+$ 0.8 %
Google Chrome |  25.8 $+$ 25.5 |  8 $+$ 33 |  17 $+$ 67 |  12.1 $+$ 35.4 %

Our results, which show only negligible differences, do not support this
assumption. Table 4 suggests that iOS 14 recordings did contact slightly more
unique domains – on average, an additional 0.2 domains ($+$ 1.0 %) and 1.6
subdomains ($+$ 4.3 %). Meanwhile, the tracker percentage dropped by 1.6 %. We
took a closer look at individual apps and chose four high-credibility
commercial apps, and three tracking-intensive games (cf. Table 5). These
results demonstrate that there is no clear trend towards less tracking. Some
apps seem to use more tracking on iOS 14 than on iOS 13. With the exception of
Google Chrome, big companies seem to have reduced tracking. We expect to see a
more drastic change once the announced privacy features are in effect.

We added Google Chrome to highlight a potential caveat when conducting user
studies with _AppChk_. Chrome is a browser that displays user-content. Most of
what a user does in Chrome should not be assigned to the application itself
but the requested website. Everything a user does during a recording, will
influence the evaluation results. Even though user-content centered apps, such
as Google Chrome, are more prone to error to a user’s actions, other apps may
experience similar traits. For example, network request can be triggered by
many different environmental factors, such as daytime, location, WiFi
connection, or individual system preferences. This shortcoming can be
mitigated with more recordings as these would filter out outliers.

##  5 Discussion

Meaningful recordings depend on a high coverage. In our case studies, the
recordings span 69 sec (D2: 141 sec) on average. In cases where an app
presents a login screen, the average recording time drops to 30 seconds.
Previous studies tested apps for 4 min [12] (normal usage) or 5 min [11]
(random execution), i. e., which suggests that we should instruct app testers
to use apps for longer periods of time. On the other hand, Kurtz et al. found
that 77.7 % of apps communicate within the first 30 sec after launch [11].

_AppChk_ can not detect whether communication with a third party resulted in
an actual privacy violations (personal data being exposed). This kind of
analysis requires in-depth inspection with specialized tools such as a MitM
proxy (https://mitmproxy.org). The limitation to focus on uncovering
connection attempts is a conscious design choice balancing the utility of the
recordings and the privacy of the users.

Further, the _AppChk_ app can not detect or prevent deliberately hidden or
malicious information sharing. For example, data can be exfiltrated by hiding
the request in an innocuous first-party domain requests. Resolving the
destination of CNAME records is currently not supported but will be added in
future work.

_AppChk_ can not determine the origin of a network request. A system process
or background app may interfere and inject wrong domains into the recording.
Long-term recordings, which are not discussed in this paper, allow users to
capture background activity. Background recordings could be used to reduce
attribution errors by establishing ground truth for device-specific anomalies.

Tracker detection is currently done manually but could be automated to provide
an always up-to-date tracking providers list. Further research is needed to
compare the results of _AppChk_ (iOS) to the tracking list of xodus (Android).

We have shown that _AppChk_ can be used to compare regional differences. Other
interesting comparisons such as free vs. paid apps, correlation between app
ratings and privacy, or changes in tracking after the introduction of privacy
features can be introduced in the future. Further, we consider to integrate
temporal analyses to detect trends, for instance, to find apps that improved
recently. Uncovering such trends could help users choose one of multiple
related apps.

##  6 Conclusion

_AppChk_ is an easy-to-use tool to improve the transparency of iOS
applications. Our platform allows users and privacy advocates to analyze
mobile network traffic on the device (_AppChk_ app) and share the results with
our evaluation website (_appchk.de_). The _AppChk_ app does not rely on deep
packet inspection, TLS interception, a Jailbreak, or external servers, and it
uses only well-documented APIs to be future-proof for upcoming iOS updates.
This allows users to conduct a study immediately after a major OS update.

The _AppChk_ website is built on the premise to provide comparable results.
The website allows users to rank and compare apps and trackers.

_AppChk_ can be used for app-group comparisons, highlighting systematic
deficits, such as in the gaming category. The games considered in our study
contact on average 36.2 domains with 53 % of the traffic being directed to
tracking domains. Moreover, during the course of our experiments we identified
seven new trackers which are not present in current tracking lists such as
_EasyList_.

_AppChk_ fosters the idea that research can be an ongoing citizen science
project, with enthusiastic people who are willing to contribute recordings on
a regular basis. More people can test more applications in less time and keep
the data up to date which results in better privacy for everyone. The results
aid users in making an informed decision about whether an app respects their
privacy and leads to public visibility and increased transparency. Ultimately,
the improved transparency may create a competition between app vendors and
incentivize them to reduce tracking.

## Acknowledgements

This work received grant support from the German Federal Ministry of Education
and Research (BMBF).

## References

  * [1] Amrein, S.: Does your phone spy on you? Master’s thesis, ETH Zurich (2016)
  * [2] Claesson, A., Bjørstad, T.E.: “Out of Control” – A review of data sharing by popular mobile apps. Tech. rep., Norwegian Consumer Council (January 2020)
  * [3] Döbelt, S., Halama, J., Fritsch, S., Nguyen, M.H., Bocklisch, F.: Clearing the Hurdles: How to Design Privacy Nudges for Mobile Application Users. In: HCI International Conference. pp. 326–353. Springer (2020)
  * [4] Exodus Privacy: xodus (2017), https://exodus-privacy.eu.org/
  * [5] Fowler, G.A.: I checked Apple’s new privacy ‘nutrition labels.’ Many were false. (2021), https://www.washingtonpost.com/technology/2021/01/29/apple-privacy-nutrition-label/
  * [6] Han, C., Reyes, I., Feal, Á., Reardon, J., Wijesekera, P., Vallina-Rodriguez, N., Elazari, A., Bamberger, K.A., Egelman, S.: The Price is (Not) Right: Comparing Privacy in Free and Paid Apps. PoPETs pp. 222–242 (2020)
  * [7] He, Y., Yang, X., Hu, B., Wang, W.: Dynamic privacy leakage analysis of Android third-party libraries. JISA pp. 259–270 (2019)
  * [8] Kollnig, K.: TrackerControl (2019), https://github.com/OxfordHCC/tracker-control-android
  * [9] Kurtz, A., Gascon, H., Becker, T., Rieck, K., Freiling, F.: Fingerprinting Mobile Devices Using Personalized Configurations. PoPETs pp. 4–19 (2016)
  * [10] Kurtz, A., Troßbach, M., Freiling, F.: SNOOP-IT: Dynamische Analyse und Manipulation von Apple iOS Apps. Sicherheit 2014 (2014)
  * [11] Kurtz, A., Weinlein, A., Settgast, C., Freiling, F.: DiOS: Dynamic Privacy Analysis of iOS Applications. Tech. Rep. CS-2014-03, FAU Erlangen-Nürnberg (June 2014)
  * [12] Leung, C., Ren, J., Choffnes, D., Wilson, C.: Should You Use the App for That? Comparing the Privacy Implications of App- and Web-based Online Services. In: Proceedings of the 2016 IMC. pp. 365–372 (2016)
  * [13] Liu, X., Liu, J., Zhu, S., Wang, W., Zhang, X.: Privacy Risk Analysis and Mitigation of Analytics Libraries in the Android Ecosystem. IEEE Trans. Mob. Comput. pp. 1184–1199 (2019)
  * [14] Maass, M., Walter, N., Herrmann, D., Hollick, M.: On the Difficulties of Incentivizing Online Privacy through Transparency: A Qualitative Survey of the German Health Insurance Market. International Conference on Wirtschaftsinformatik (2019)
  * [15] Maass, M., Wichmann, P., Pridöhl, H., Herrmann, D.: PrivacyScore: Improving Privacy and Security via Crowd-Sourced Benchmarks of Websites. In: Annual Privacy Forum. pp. 178–191. Springer (2017)
  * [16] Papadopoulos, E.P., Diamantaris, M., Papadopoulos, P., Petsas, T., Ioannidis, S., Markatos, E.P.: The Long-Standing Privacy Debate: Mobile Websites Vs Mobile Apps. In: Proceedings of the 26th International Conference on World Wide Web. pp. 153–162 (2017)
  * [17] Perta, V.C., Barbera, M.V., Tyson, G., Haddadi, H., Mei, A.: A Glance through the VPN Looking Glass: IPv6 Leakage and DNS Hijacking in Commercial VPN clients. PoPETs pp. 77–91 (2015)
  * [18] Yang, Z., Yue, C.: A Comparative Measurement Study of Web Tracking on Mobile and Desktop Environments. PoPETs pp. 24–44 (2020)


# Sampling color and geometry point clouds from ShapeNet dataset

Davi Lazzarotto and Touradj Ebrahimi
Multimedia Signal Processing Group (MMSPG)
École Polytechnique Fédérale de Lausanne (EPFL)
Lausanne, Switzerland
<EMAIL_ADDRESS><EMAIL_ADDRESS>

###### Abstract

The popularisation of acquisition devices capable of capturing volumetric
information such as LiDAR scans and depth cameras has lead to an increased
interest in point clouds as an imaging modality. Due to the high amount of
data needed for their representation, efficient compression solutions are
needed to enable practical applications. Among the many techniques that have
been proposed in the last years, learning-based methods are receiving large
attention due to their high performance and potential for improvement. Such
algorithms depend on large and diverse training sets to achieve good
compression performance. ShapeNet is a large-scale dataset composed of CAD
models with texture and constitute and effective option for training such
compression methods. This dataset is entirely composed of meshes, which must
go through a sampling process in order to obtain point clouds with geometry
and texture information. Although many existing software libraries are able to
sample geometry from meshes through simple functions, obtaining an output
point cloud with geometry and color of the external faces of the mesh models
is not a straightforward process for the ShapeNet dataset. The main difficulty
associated with this dataset is that its models are often defined with
duplicated faces sharing the same vertices, but with different color values.
This document describes a script for sampling the meshes from ShapeNet that
circumvent this issue by excluding the internal faces of the mesh models prior
to the sampling. The script can be accessed from the following link:
https://github.com/mmspg/mesh-sampling.

##  1 Scope and Background

The development of imaging modalities for the representation of three-
dimensional content has been an important topic of research in the last
decades. The increasing performance of computing devices together with the
high quality of modern displays have allowed for a fast development of the
field of computer graphics for both industrial and entertainment applications
to mention two among a large number of potential applications. Traditionally,
this field has relied on the use of meshes as the imaging modality for the
representation of artificially generated content.

Mesh models are represented as a set of interconnected points in the three
dimensional space. These vertices and edges define a set polygons that usually
constitute the surface of a watertight volume. On one hand, the color on the
faces of such 3D models can be defined either as values assigned individually
for each face or as two dimensional texture, mapped directly onto the surface.
Point clouds, on the other hand, don’t contain any connectivity information,
being composed uniquely, of a list of point coordinates with associated
attributes such as color, normal vectors, semantic labels and many others
possible features.

The advent and popularization of acquisition devices that allow to capture
volumetric information such as LiDAR scans and depth cameras has fostered the
rise of new applications such as telepresence, virtual reality and wide area
scanning. The output of such devices can usually be easily converted into a
list of the space coordinates of the acquired points with associated
attributes such as color and reflectance. Although there are algorithms
capable of generating meshes from the scans, in many applications it is more
advantageous to directly use of the acquired points in the form of point
clouds.

Depending on application, the number of points in a typical point cloud model
can range from thousands up to the order of billions. Since the transmission
and storage of such huge amount of data is impractical, efficient compression
methods are paramount. For this reason, standardisation committees such as
JPEG, Khronos Group and MPEG have been devoting efforts to the development of
interoperable compression standards.

##  2 Current practices and challenges

While many conventional data structures such as the octree or the sets of
projections have been proposed to encode point cloud data, deep learning-based
architectures have been reporting high performance and have attracted the
attention of many researchers and standardisation groups. Such methods apply
transforms learned through a training process, relying on large and diverse
datasets with thousands of point clouds. Several datasets were employed to
train learning-based compression algorithms reported in the literature. Table
1 lists some of these datasets including the reference to the respective
compression methods.

Dataset | Compression method
---|---
ShapeNet[1] | Wang et al.[2, 3]
ModelNet[4] | Quach et al.[5, 6] and Nguyen et al.[7]
MPEG | Alexiou et al.[8] and Guarda et al.[9, 10, 11, 12, 13, 14, 15]
JPEG Pleno[16] | Alexiou et al.[8]
nuScenes[17] | Wiesman et al.[18]
Table 1: Datasets employed for training learning-based point cloud compression
methods.

Among the datasets listed in Table 1, ShapeNet is a powerful option for
training learning-based compression methods due to its large number of models
with associated color texture. Moreover, it has been already successfully
employed for training geometry-only compression algorithms. Since ShapeNet is
composed of mesh models, a preprocessing step is needed where in order to
convert the dataset into point clouds prior to its use in the training loop.
Although ignoring the connectivity information and forming a point cloud with
the mesh vertices is in theory a possible solution, the resulting models will
potentially have too low point density. Previous works [5, 6, 3] used random
sampling followed by voxelization in order to obtain geometry-only point
clouds with points lying on a uniform grid. However, the software libraries by
these authors are only capable of sampling the geometry, ignoring associated
color attributes.

##  3 Mesh sampling solutions

###  3.1 Software libraries

Several [5, 6, 2, 3, 8] open source learning-based point cloud compression
methods are based on Python [19] as a programming language. Similarly, many
software libraries for point cloud processing are based on Python as well,
such as Pyntcloud [20], Open3D [21] and pymeshlab [22]. Pyntcloud [20] allows
for the sampling of meshes through the method `get_sample()`, which randomly
selects a defined number of points from a mesh. This library was employed by
the authors of [5, 6, 3], but is only able to generate geometry-only point
clouds.

The Open3D [21] Python library has two methods for mesh sampling:
`sample_points_uniformly()` applies uniform sampling, while
`sample_points_poisson_disk()` uses Poisson disk sampling [23] to obtain a
point cloud from the mesh. Likewise, these methods are only able to deal with
geometry-only data.

Meshlab [22] is a standalone software that allows for the visualisation and
processing of meshes and point clouds. It contains a large number of different
algorithms for mesh sampling, which are also unable to generate point clouds
with texture. Meshlab also has functions that transfer the color from mesh
vertices to a point cloud, which are however not able to deal with cases where
the color is defined as a two dimensional texture map. All functions from
Meshlab are also available in a corresponding Python library called pymeshlab.

CloudCompare [24] is another tool that can be used for visualisation and
processing of 3D content. This software contains a function that allows for
the direct sampling of both the color and the geometry in random positions
over a mesh surface. Moreover, is is able to deal with color defined both per
face or as texture.

###  3.2 Proposed method

While CloudCompare can be used to sample point clouds with color, the direct
sampling of mesh models from ShapeNet using this tool doesn’t generate point
clouds with similar visual result as the corresponding mesh renderings. Figure
7 portrays this result, where it is clear that the color on some parts of the
generated point cloud is corrupted, with the appearance of added noise. The
reason for this effect is that meshes from ShapeNet are often defined with two
or more faces sharing the same vertices, but with opposing normal vectors.
Moreover, these pairs of faces at the same position in space don’t always have
the same color. Most mesh rendering software apply back face culling, not
showing any faces whose normal is not facing the direction of visualization.
However, the obtained point cloud is randomly sampled from all faces, and
therefore points with different colors appear on the surface of the same face.

(a) Example mesh from ShapeNet dataset

(b) Point cloud generated after direct sampling

Figure 1: Example mesh _SuzukiGSXR10002003_ and corresponding direct sampling

In order to circumvent this issue, our proposed method aims to detect which
faces have normal vectors facing the interior of the mesh and cannot be seen
from the position of an outside observer. These faces can be then removed from
the mesh prior to sampling so that their colors don’t affect the generated
point cloud. This process is done through the ambient occlusion plugin from
Meshlab, which simulates multiple view directions around the mesh model and
assigns to each face a quality value proportional to the number of views from
each that face is visible. Then, an iterative process scans the mesh
identifying the faces that share the same vertices and selecting only the
faces with highest quality value among them and removing the remaining ones.
After this process, only the faces with normal vectors facing the exterior of
the mesh should be present, and no duplicated faces in the same position
remain. The produced mesh is then sampled using CloudCompare, generating a
point cloud with both color and geometry.

Finally, the point cloud is scaled to a cubic bounding box with a desired
resolution and the point coordinates are quantized to an uniform grid. If two
or more points are quantized to the same coordinate, the associated color
attributes are average out. This process is applied using the Open3D library.
The result for the exemple mesh model can be seen in Figure 8.

Figure 2: Point cloud generated from _SuzukiGSXR10002003_ by proposed script

##  4 Condition of use

If you wish to use the provided script in your research, we kindly ask you to
cite this document.

## Acknowledgments

This work was supported by the Swiss National Foundation for Scientific
Research (SNSF) under the grant number 200021-178854.

## References

  * [1] Angel X. Chang, Thomas Funkhouser, Leonidas Guibas, Pat Hanrahan, Qixing Huang, Zimo Li, Silvio Savarese, Manolis Savva, Shuran Song, Hao Su, Jianxiong Xiao, Li Yi, and Fisher Yu.  ShapeNet: An Information-Rich 3D Model Repository.  Technical Report arXiv:1512.03012 [cs.GR], Stanford University — Princeton University — Toyota Technological Institute at Chicago, 2015.
  * [2] Jianqiang Wang, Dandan Ding, Zhu Li, and Zhan Ma.  Multiscale point cloud geometry compression, 2020.
  * [3] Jianqiang Wang, Hao Zhu, Haojie Liu, and Zhan Ma.  Lossy point cloud geometry compression via end-to-end learning.  IEEE Transactions on Circuits and Systems for Video Technology, pages 1–1, 2021.
  * [4] Z. Wu, S. Song, A. Khosla, F. Yu, L. Zhang, X. Tang, and J. Xiao.  3d shapenets: A deep representation for volumetric shapes.  In Proceedings of 28th IEEE Conference on Computer Vision and Pattern Recognition (CVPR2015), 2015.
  * [5] Maurice Quach, Giuseppe Valenzise, and Frédéric Dufaux.  Learning convolutional transforms for lossy point cloud geometry compression.  In 2019 IEEE International Conference on Image Processing (ICIP), pages 4320–4324, 2019.
  * [6] Maurice Quach, Giuseppe Valenzise, and Frédéric Dufaux.  Improved Deep Point Cloud Geometry Compression.  In IEEE International Workshop on Multimedia Signal Processing (MMSP’2020), Sep. 2020.
  * [7] Dat Nguyen, Maurice Quach, Giuseppe Valenzise, and Pierre Duhamel.  Learning-based lossless compression of 3d point cloud geometry.  In ICASSP, 2021.
  * [8] Evangelos Alexiou, Kuan Tung, and Touradj Ebrahimi.  Towards neural network approaches for point cloud compression.  In Applications of Digital Image Processing XLIII, page 4, 08 2020\.
  * [9] André F. R. Guarda, N. M. M. Rodrigues, and F. Pereira.  Point cloud coding: Adopting a deep learning-based approach.  In 2019 Picture Coding Symposium (PCS), pages 1–5, 2019.
  * [10] André F. R. Guarda, N. M. M. Rodrigues, and F. Pereira.  Deep learning-based point cloud coding: A behavior and performance study.  In 2019 8th European Workshop on Visual Information Processing (EUVIP), pages 34–39, 2019.
  * [11] André F. R. Guarda, N. M. M. Rodrigues, and F. Pereira.  Deep learning-based point cloud geometry coding: RD control through implicit and explicit quantization.  In 2020 IEEE International Conference on Multimedia Expo Workshops (ICMEW), pages 1–6, 2020.
  * [12] André F. R. Guarda, Nuno M. M. Rodrigues, and Fernando Pereira.  Deep learning-based point cloud geometry coding with resolution scalability.  In 2020 IEEE 22nd International Workshop on Multimedia Signal Processing (MMSP), pages 1–6, 2020.
  * [13] André F. R. Guarda, Nuno M. M. Rodrigues, and Fernando Pereira.  Point cloud geometry scalable coding with a single end-to-end deep learning model.  In 2020 IEEE International Conference on Image Processing (ICIP), pages 3354–3358, 2020.
  * [14] André F. R. Guarda, Nuno M. M. Rodrigues, and Fernando Pereira.  Adaptive deep learning-based point cloud geometry coding.  IEEE Journal of Selected Topics in Signal Processing, 15(2):415–430, 2021.
  * [15] André F. R. Guarda, Nuno Rodrigues, and Fernando Pereira.  Neighborhood adaptive loss function for deep learning-based point cloud coding with implicit and explicit quantization.  IEEE MultiMedia, pages 1–1, 2020.
  * [16] JPEG Pleno Database, http://plenodb.jpeg.org/.
  * [17] Holger Caesar, Varun Bankiti, Alex H. Lang, Sourabh Vora, Venice Erin Liong, Qiang Xu, Anush Krishnan, Yu Pan, Giancarlo Baldan, and Oscar Beijbom.  nuscenes: A multimodal dataset for autonomous driving.  In CVPR, 2020.
  * [18] Louis Wiesmann, Andres Milioto, Xieyuanli Chen, Cyrill Stachniss, and Jens Behley.  Deep compression for dense point cloud maps.  IEEE Robotics and Automation Letters, 6(2):2060–2067, 2021.
  * [19] Guido Van Rossum and Fred L. Drake.  Python 3 Reference Manual.  CreateSpace, Scotts Valley, CA, 2009.
  * [20] PyntCloud, https://pyntcloud.readthedocs.io/, 2021.
  * [21] Qian-Yi Zhou, Jaesik Park, and Vladlen Koltun.  Open3D: A modern library for 3D data processing.  arXiv:1801.09847, 2018.
  * [22] Paolo Cignoni, Marco Callieri, Massimiliano Corsini, Matteo Dellepiane, Fabio Ganovelli, and Guido Ranzuglia.  MeshLab: an Open-Source Mesh Processing Tool.  In Vittorio Scarano, Rosario De Chiara, and Ugo Erra, editors, Eurographics Italian Chapter Conference. The Eurographics Association, 2008.
  * [23] Michael Mccool and Eugene Fiume.  Hierarchical poisson disk sampling distributions.  Proceedings - Graphics Interface, 05 1992.
  * [24] CloudCompare (version 2.11) [GPL software], http://www.cloudcompare.org/, 2021\.

##  Appendix A Annex A

In this annex, there are examples of the application of the proposed scripts
from other metrics from ShapeNet.

(a) Example mesh from ShapeNet dataset

(b) Point cloud generated after direct sampling

Figure 3: Example mesh _ZAZ968MZaporozhec_ and corresponding direct sampling
Figure 4: Point cloud generated from _ZAZ968MZaporozhec_ by proposed script

(a) Example mesh from ShapeNet dataset

(b) Point cloud generated after direct sampling

Figure 5: Example mesh _Plantanopote2_ and corresponding direct sampling
Figure 6: Point cloud generated from _Plantanopote2_ by proposed script

(a) Example mesh from ShapeNet dataset

(b) Point cloud generated after direct sampling

Figure 7: Example mesh _CameraVarioPlatterncamera_ and corresponding direct
sampling Figure 8: Point cloud generated from _CameraVarioPlatterncamera_ by
proposed script