0% found this document useful (0 votes)
36 views26 pages

New Ross

The document is a research internship report by Roshan Sah on the development of a Digital Twin Toolbox, submitted as part of the requirements for a Bachelor of Engineering in Information Science and Engineering at Visvesvaraya Technological University. The project utilized Python and Docker to create a modular solution for simulating and monitoring physical systems in real-time, addressing challenges in generating 3D Tiles from urban datasets. The report includes acknowledgments, an abstract, company profile, tasks performed, and reflections on the learning experience and skills acquired during the internship.

Uploaded by

Tharun Kshatriya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views26 pages

New Ross

The document is a research internship report by Roshan Sah on the development of a Digital Twin Toolbox, submitted as part of the requirements for a Bachelor of Engineering in Information Science and Engineering at Visvesvaraya Technological University. The project utilized Python and Docker to create a modular solution for simulating and monitoring physical systems in real-time, addressing challenges in generating 3D Tiles from urban datasets. The report includes acknowledgments, an abstract, company profile, tasks performed, and reflections on the learning experience and skills acquired during the internship.

Uploaded by

Tharun Kshatriya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

VISVESVARAYA TECHNOLOGICAL UNIVERSITY

"JNANA SANGAMA", MACHHE, BELAGAVI-590018

Research Internship /Industry Internship Report


on
Digital Twin Toolbox

Submitted in partial fulfillment of the requirements for the VII-VIII semester


Bachelor of Engineering
in
Information Science and Engineering
of
Visvesvaraya Technological University, Belagavi
by
ROSHAN SAH
(1CD21IS187)

Under the Guidance of


Prof. Sudarsanan D Prof. K Navya
Assistant Professor Dept. of ISE Assistant Professor Dept. of ISE

Department of Information Science and Engineering


CAMBRIDGE INSTITUTE OF TECHNOLOGY, BANGALORE-560 036
K.R. PURAM, BANGALORE – 560 036, Ph: 080-2561 8798 / 2561 8799
Fax: 080-2561 8789, email: principal@cambridge.edu.in
Affiliated to VTU, Belagavi| Approved by AICTE, New Delhi| NAAC A+ & NBA Accredited|
UGC 2(f) Certified| Recognized by Govt. of Karnataka

2024-2025
CAMBRIDGE INSTITUTE OF TECHNOLOGY, BANGALORE-560 036
K.R. PURAM, BANGALORE – 560 036, Ph: 080-2561 8798 / 2561 8799
Fax: 080-2561 8789, email: principal@cambridge.edu.in
Affiliated to VTU, Belagavi| Approved by AICTE, New Delhi| NAAC A+ & NBA Accredited|
UGC 2(f) Certified| Recognized by Govt. of Karnataka

DEPARTMENT OF INFORMATION SCIENCE & ENGINEERING

CERTIFICATE

Certified that Mr. Roshan Sah bearing USN 1CD21IS187, a bonafide student of
Cambridge Institute of Technology, has successfully completed the Research Internship
/Industry Internship Report entitled “Digital Twin Toolbox” in partial fulfillment of the
requirements for VIII semester Bachelor of Engineering in Information Science and
Engineering of Visvesvaraya Technological University, Belagavi during academic year 2024-
2025. It is certified that all Corrections/Suggestions indicated for Internal Assessment have been
incorporated in the report deposited in the departmental library. The Internship report has been
approved as it satisfies the academic requirements prescribed for the Bachelor of Engineering
degree.

Internship Coordinator, Head of the Department,


Prof. Sudarsanan D Dr. Preethi S,
Prof. Karangule Navya Dept. of ISE, CITech
Dept. of ISE, CITech

Signature
Name of the Examiners

1.

2.
ACKNOWLEDGEMENT

I would like to place on record my deep sense of gratitude to Shri. D. K. Mohan, Chairman,
Cambridge Group of Institutions, Bangalore, India for providing excellent Infrastructure and

Academic Environment at CITech without which this work would not have been possible.

I am extremely thankful to Dr. G. Indumathi, Principal, CITech, Bangalore, for providing me


the academic ambience and everlasting motivation to carry out this work and shaping our
careers.

I express my sincere gratitude to Dr. Preethi S, HOD, Dept. of Information Science and
Engineering, CITech, Bangalore, for her stimulating guidance, continuous encouragement and
motivation throughout the course of present work.

I also wish to extend my thanks to Internship Coordinator, Prof. Sudarsanan D, Assistant


Professor, Prof. Karangula Navya Assistant Professor Dept. of ISE, CITech, Bangalore for the
critical, insightful comments, guidance and constructive suggestions to improve the quality of
this work.

Finally to all my friends, classmates who always stood by me in difficult situations also helped
me in some technical aspects and last but not the least, I wish to express deepest sense of
gratitude to my parents who were a constant source of encouragement and stood by me as pillar
of strength for completing this work successfully.

Roshan Sah

i
ABSTRACT

This internship focused on the development of a Digital Twin Toolbox using Python and Docker
to simulate and monitor physical systems in a virtual environment. The objective was to create a
flexible, modular solution capable of replicating real-world system behavior in real time. Python
was employed for building simulation models, processing real-time data, and visualizing system
performance using libraries such as NumPy, Pandas, and Matplotlib. Docker was used to
containerize the entire application, ensuring consistent deployment across different environments
and simplifying dependency management. The toolbox supports integration with external data
sources, system modeling, and user interaction through APIs or dashboards. Docker Compose
was utilized for orchestrating multi-container applications, including backend services and
databases. This project provided practical experience in digital twin architecture,
containerization, and software deployment, while demonstrating how combining Python and
Docker can streamline the development of scalable, reliable digital twin solutions for industrial
and research applications and to solve real word problems as well in short time.

ii
TABLE OF CONTENTS

Acknowledgement i
Abstract ii
Table of Contents iii
List of Figure iv

Chapter Contents Page


Number Number

1 COMPANY PROFILE 01
1.1 Introduction 01
1.2 Overview of the Organization 02
2 TASK PERFORMED 05
2.1 Learning Experiences 05
2.2 Knowledge Acquired 05
2.3 Skills Learned 05
2.4 The Most Challenging Task Performed 05
2.5 Problem Identified 06
3 REFLECTIONS 07
3.1 Solutions 07
3.2 Screenshots 17
CONCLUSION 20

iii
LIST OF FIGURES

FIGURE NO. FIGURE NAME PAGE NO.

2.1 Workflow and Dependencies 6


3.1 Code Snapshots Frontend 17
3.2 Code Snapshots Backend 17
3.3 Code Snapshots Backend 18
3.4 Twin Toolbox UI 18
3.5 Add Asset Page 19
3.6 Pipeline Page 19

iv
CHAPTER 1
COMPANY PROFILE

1.1 INTRODUCTION

Cambrian Consultancy Center & Industrial Research (CCCIR) is a nonprofit foundation


established in 2021 to advance the research and innovation mission of the Cambridge Institute of
Technology (CIT), Bengaluru. As CIT's official R&D and innovation arm, CCCIR oversees key
initiatives including the Research & Development Center, Technology Center, Center of
Excellence, Consultancy & Training, Incubation & Entrepreneurship Cell, and International
Partnerships.

CCCIR serves as a collaborative platform for domestic and international researchers and
innovators, providing a learning and development space for growing researchers. The
organization focuses on solving pressing scientific problems and leading the discovery and
design of groundbreaking products and technologies.

With a team size of 11–50 employees, CCCIR is led by Dr. Cyril Prasanna Raj P, a professor in
the ECE Department at CIT with over 26 years of experience in VLSI signal processing. The
center has achieved significant milestones, such as the design and testing of a Display Controller
IC by its undergraduate and postgraduate students.

It oversees several key functions including R&D labs, centers of excellence, technology transfer
initiatives, and international partnerships. The organization facilitates industry-academia
collaboration, startup incubation, and real-world application of academic research, primarily in
areas like electronics, VLSI, and embedded systems.

B.E, Dept. of ISE, CITech 2024-25 Page 1


Digital Twin Toolbox Introduction

1.2 OVERVIEW OF THE ORGANIZATION


Cambrian Consultancy Center & Industrial Research (CCCIR) is the dedicated research,
innovation, and consultancy wing of Cambridge Institute of Technology (CIT), Bengaluru.
Founded in 2021, CCCIR aims to bridge the gap between academic knowledge and real-world
industrial challenges. It provides a dynamic ecosystem that supports interdisciplinary research,
advanced technological development, and entrepreneurial activities. The center empowers
students, faculty, and external collaborators to work on projects in emerging domains such as
VLSI, artificial intelligence, embedded systems, smart electronics, and IoT.

CCCIR offers structured platforms for R&D, industrial consultancy, product prototyping, and
startup incubation. By encouraging hands-on learning and practical application, it ensures that
academic efforts lead to tangible outcomes. Through partnerships with industry and international
institutions, CCCIR facilitates knowledge transfer and enhances global research exposure for its
participants.

The center also hosts specialized training programs, workshops, and mentorship initiatives that
cultivate innovation and leadership skills among students. Its facilities are designed to support
both fundamental research and applied technology solutions, making it a key driver of
institutional growth and societal impact. CCCIR’s mission is not only to advance science and
engineering but also to transform young talent into future innovators and entrepreneurs.

B.E, Dept. of ISE, CITech 2024-25 Page 2


CHAPTER 2
TASK PERFORMED

2.1 LEARNING EXPEIENCES


During our work on the Digital Twin Toolbox, we used GitHub for version control and
collaboration. We learned essential Git commands, such as git init, git add, git commit, and git
push to manage our project. These tools allowed us to track changes and collaborate on the
development of the Digital Twin models. By pushing and pulling code to/from remote
repositories, we ensured that all team members had access to the latest updates and could
contribute efficiently. This hands-on experience helped us improve our understanding of
collaborative workflows in software development, especially in complex systems like digital
twins.

2.2 KNOWLEDGE ACCQUIRED


Through our work on the Digital Twin Toolbox, we gained valuable knowledge in system
modeling, real-time data integration, and the deployment of scalable solutions using Python and
Docker. We learned how to build and simulate digital twins, manage data flows, and visualize
system behavior. Additionally, we gained practical experience in version control using GitHub,
collaborating effectively within a team, and managing code changes. This experience enhanced
our understanding of both the technical and collaborative aspects of developing advanced digital
solutions.
Moreover, we became adept at troubleshooting issues, ensuring smooth integration of
components, and refining our approach to meet real-world demands. Working with Docker also
helped us understand the significance of environment consistency and scalability in large
applications, while using Python empowered us to develop flexible, efficient models for diverse
applications. The experience solidified our problem-solving and project management skills,
essential for navigating complex software development challenges.

B.E, Dept. of ISE, CITech 2024-25 Page 3


Digital Twin Toolbox Task Performed

2.3 SKILLS LEARNED


In the process of developing the Digital Twin Toolbox, we acquired several key skills:
1. Python Programming – Proficiency in building data models and simulations.
2. Docker – Understanding containerization and deploying applications in isolated
environments.
3. GitHub Version Control – Using Git commands like git add, git commit, git push for
efficient code management and collaboration.
4. Digital Twin Concepts – Gaining insight into real-time data integration and system
monitoring.
5. Collaborative Development – Working in teams, managing code conflicts, and merging
contributions effectively.

2.4 THE MOST CHALLENGING TASK PERFORMED


During the Digital Twin Toolbox project, we encountered several challenges while pushing code
to the repository and executing the project. One of the major issues was resolving module errors.
We faced difficulties with missing or incompatible dependencies when installing and running
various Python libraries for the simulation models. This required a lot of debugging to identify
the correct versions and dependencies.

Additionally, there were occasional Git errors during code pushes, such as merge conflicts and
failed commits. These issues arose when multiple team members worked on the same files
simultaneously. We had to resolve these conflicts by carefully reviewing changes and using Git’s
conflict resolution tools.

These challenges taught us how to troubleshoot module errors, manage dependencies effectively,
and handle version control conflicts while collaborating in a team environment.

B.E, Dept. of ISE, CITech 2024-25 Page 4


Digital Twin Toolbox Task Performed

2.5 PROBLEMS INDENTIFIED


As urban environments become increasingly complex, the demand for high-fidelity 3D
representations has grown across industries such as urban planning, construction, disaster
management, and smart city development. While the 3D Tiles format (developed by Cesium) is a
powerful and scalable solution for rendering and streaming 3D geospatial data, generating 3D
Tiles from real-world datasets like Shapefiles and LiDAR data remains a fragmented and
technically demanding process.
Key problems identified include:
1. Lack of Unified Workflow:
There is no out-of-the-box, open-source toolchain that provides an end-to-end pipeline to
convert heterogeneous urban datasets (e.g., shapefiles, LAS/LAZ files) into optimized 3D
Tiles.
2. Tool Incompatibility and Complexity:
Existing tools for processing spatial and LiDAR data often require complex setup, lack
documentation, and do not interoperate well—leading to high entry barriers for
developers and GIS professionals.
3. Cross-Platform Issues:
Certain platform-specific issues (e.g., database initialization errors on macOS) hinder
usability and portability of current solutions.
4. CRS and Data Normalization Challenges:
LiDAR and shapefile datasets often come with different coordinate systems and metadata
structures. Ensuring correct reprojection, resampling, and alignment is non-trivial and
error-prone.
5. Lack of Automation and Scalability:
Manual steps dominate current workflows, which limits the ability to batch process or
scale to city-level datasets. Features like automated asset ingestion, point cloud
classification, or tile generation logic (octree/quadtree) are missing or immature.
6. Incomplete Viewer and Visualization Tools:
Although the project includes a basic application viewer with extruded polygons, it lacks
robust support for user interaction, point cloud rendering, and UI/UX customization for
varied data types.

B.E, Dept. of ISE, CITech 2024-25 Page 5


Digital Twin Toolbox Task Performed

7. Insufficient Documentation and Testing:


The project is still under heavy development with limited documentation, testing
coverage, and community feedback mechanisms.

Fig 2.1: Workflow and Dependencies

B.E, Dept. of ISE, CITech 2024-25 Page 6


CHAPTER 3
REFLECTIONS
3.1 Solutions
To address the challenges in generating 3D Tiles from heterogeneous urban data sources,
the project introduces a modular, Docker-based toolbox with the following proposed
solutions:

1. Integrated Toolchain in Docker Environment: A unified Dockerized platform bundles


various open-source tools and libraries, enabling seamless interoperability and
simplifying setup across different systems. This minimizes configuration errors and
ensures reproducibility.
2. Draft Pipelines for Common Data Sources:
o Shapefiles (Polygons, Lines, Points): A dedicated conversion pipeline that
handles spatial feature extraction and extrusion into 3D geometries.
o LiDAR Data: A robust pipeline for transforming LAS/LAZ files into 3D point
tiles, including preprocessing steps like coordinate reprojection, colorization, and
resampling.
3. Cross-Platform Compatibility Enhancements: Platform-specific bugs (e.g., macOS
task table creation) are being identified and addressed early in development, with the
aim of achieving full OS compatibility.
4. Coordinate System Normalization Utilities: Built-in tools are included to detect and
correct mismatched CRS (Coordinate Reference Systems), ensuring proper alignment
and rendering of combined datasets.
5. Scalable Processing Workflows: The roadmap includes support for batch processing,
pre-populated datasets, and future automation of tasks such as tile generation using
spatial indexing structures (octree/quadtree), improving scalability to city-scale
projects.

B.E, Dept. of ISE, CITech 2024-25 Page 7


Digital Twin Toolbox Reflections

#Code Snippets

Backend/main.py

import sentry_sdk

from fastapi import FastAPI

from fastapi.routing import APIRoute

from starlette.middleware.cors import CORSMiddleware

from fastapi.staticfiles import StaticFiles

import os

from app.api.main import api_router

from app.core.config import settings

def custom_generate_unique_id(route: APIRoute) -> str:

return f"{route.tags[0]}-{route.name}"

if settings.SENTRY_DSN and settings.ENVIRONMENT != "local":

sentry_sdk.init(dsn=str(settings.SENTRY_DSN), enable_tracing=True)

app = FastAPI(

title=settings.PROJECT_NAME,

openapi_url=f"{settings.API_V1_STR}/openapi.json",

generate_unique_id_function=custom_generate_unique_id,

# Set all CORS enabled origins

if settings.BACKEND_CORS_ORIGINS:

B.E, Dept. of ISE, CITech 2024-25 Page 8


Digital Twin Toolbox Reflections

app.add_middleware(

CORSMiddleware,

allow_origins=[

str(origin).strip("/") for origin in settings.BACKEND_CORS_ORIGINS

],

allow_credentials=True,

allow_methods=["*"],

allow_headers=["*"],

app.include_router(api_router, prefix=settings.API_V1_STR)

static_output = os.path.join(settings.ASSETS_DATA, "output")

os.makedirs(static_output, exist_ok=True)

app.mount(

settings.API_V1_STR + '/output',

StaticFiles(directory=static_output),

name="output"

B.E, Dept. of ISE, CITech 2024-25 Page 9


Digital Twin Toolbox Reflections

Frontend/app/main.py

import sentry_sdk

from fastapi import FastAPI

from fastapi.routing import APIRoute

from starlette.middleware.cors import CORSMiddleware

from fastapi.staticfiles import StaticFiles

import os

from app.api.main import api_router

from app.core.config import settings

def custom_generate_unique_id(route: APIRoute) -> str:

return f"{route.tags[0]}-{route.name}"

if settings.SENTRY_DSN and settings.ENVIRONMENT != "local":

sentry_sdk.init(dsn=str(settings.SENTRY_DSN), enable_tracing=True)

app = FastAPI(

title=settings.PROJECT_NAME,

openapi_url=f"{settings.API_V1_STR}/openapi.json",

generate_unique_id_function=custom_generate_unique_id,

B.E, Dept. of ISE, CITech 2024-25 Page 10


Digital Twin Toolbox Reflections

# Set all CORS enabled origins

if settings.BACKEND_CORS_ORIGINS:

app.add_middleware(

CORSMiddleware,

allow_origins=[

str(origin).strip("/") for origin in settings.BACKEND_CORS_ORIGINS

],

allow_credentials=True,

allow_methods=["*"],

allow_headers=["*"],

app.include_router(api_router, prefix=settings.API_V1_STR)

static_output = os.path.join(settings.ASSETS_DATA, "output")

os.makedirs(static_output, exist_ok=True)

app.mount(

settings.API_V1_STR + '/output',

StaticFiles(directory=static_output), Digital Twin Toolbox

name="output"

B.E, Dept. of ISE, CITech 2024-25 Page 11


Digital Twin Toolbox Reflections

Frontend/src/hooks/useAuth.ts

import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"

import { useNavigate } from "@tanstack/react-router"

import { useState } from "react"

import { AxiosError } from "axios"

import {

type Body_login_login_access_token as AccessToken,

type ApiError,

LoginService,

type UserPublic,

type UserRegister,

UsersService,

} from "../client"

import useCustomToast from "./useCustomToast"

const isLoggedIn = () => {

return localStorage.getItem("access_token") !== null

const useAuth = () => {

const [error, setError] = useState<string | null>(null)

B.E, Dept. of ISE, CITech 2024-25 Page 12


Digital Twin Toolbox Reflections

const navigate = useNavigate()

const showToast = useCustomToast()

const queryClient = useQueryClient()

const { data: user, isLoading } = useQuery<UserPublic | null, Error>({

queryKey: ["currentUser"],

queryFn: UsersService.readUserMe,

enabled: isLoggedIn(),

})

Frontend/src/hooks/useCustomToast.ts

import { useToast } from "@chakra-ui/react"

import { useCallback } from "react"

const useCustomToast = () => {

const toast = useToast()

const showToast = useCallback(

(title: string, description: string, status: "success" | "error") => {

toast({

title, description, status, isClosable: true, position: "bottom-right",

})

},

[toast],

) return showToast

B.E, Dept. of ISE, CITech 2024-25 Page 13


Digital Twin Toolbox Reflections

Frontend/src/utils.ts

import type { ApiError } from "./client"

export const emailPattern = {

value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,

message: "Invalid email address",

export const namePattern = {

value: /^[A-Za-z\s\u00C0-\u017F]{1,30}$/,

message: "Invalid name",

export const passwordRules = (isRequired = true) => {

const rules: any = {

minLength: {

value: 8,

message: "Password must be at least 8 characters",

},

if (isRequired) {

B.E, Dept. of ISE, CITech 2024-25 Page 14


Digital Twin Toolbox Reflections

rules.required = "Password is required"

return rules

export const confirmPasswordRules = (

getValues: () => any,

isRequired = true,

) => {

const rules: any = {

validate: (value: string) => {

const password = getValues().password || getValues().new_password

return value === password ? true : "The passwords do not match"

},

if (isRequired) {

rules.required = "Password confirmation is required"

return rules

B.E, Dept. of ISE, CITech 2024-25 Page 15


Digital Twin Toolbox Reflections

export const handleError = (err: ApiError, showToast: any) => {

const errDetail = (err.body as any)?.detail

let errorMessage = errDetail || "Something went wrong."

if (Array.isArray(errDetail) && errDetail.length > 0) {

errorMessage = errDetail[0].msg

showToast("Error", errorMessage, "error")

B.E, Dept. of ISE, CITech 2024-25 Page 16


Digital Twin Toolbox Reflections

3.2 Screenshots

Fig 3.1: Code Snapshots Frontend

Fig 3.2: Code Snapshots Backend

B.E, Dept. of ISE, CITech 2024-25 Page 17


Digital Twin Toolbox Reflections

Fig 3.3: Code Snapshots Backend

Fig 3.4: Twin toolbox UI

B.E, Dept. of ISE, CITech 2024-25 Page 18


Digital Twin Toolbox Reflections

Fig 3.5: Add Asset Page

Fig 3.6: Pipeline Page

B.E., Dept of ISE, CITech 2024-25 Page 19


CONCLUSION

The Digital Twin Toolbox project provided an excellent learning opportunity to develop a
deep understanding of system modeling, real-time data integration, and the deployment of
scalable solutions. Throughout the development process, we encountered several challenges,
particularly related to module errors, version control conflicts, and integration issues. Despite
these hurdles, the experience allowed us to refine our problem-solving skills, improve our
collaboration, and strengthen our technical abilities in Python, Docker, and Git.

Working on this project helped us grasp the complexities of creating digital twins, from
simulating real-world systems to ensuring smooth data flow and accurate visualization. We
also learned the importance of maintaining a consistent development environment and
managing dependencies effectively. Furthermore, the collaborative aspect of the project
taught us how to efficiently handle version control issues and resolve conflicts that arise when
multiple contributors work on the same codebase.

In conclusion, the Digital Twin Toolbox project not only enhanced our technical knowledge
but also equipped us with essential skills for real-world software development, including
troubleshooting, teamwork, and managing complex systems. The experience solidified our
understanding of the practical challenges involved in building scalable solutions and prepared
us for future projects in the field of digital technologies.

B.E, Dept. of ISE, CITech 2024-25 Page 20

You might also like