Skip to main content

LUP Student Papers

LUND UNIVERSITY LIBRARIES

Utvärdering av ramverk för webbaserade användargränssnitt med fokus på tillämpningar inom finita elementberäkningar

Persson, Adam LU (2026) In TVSM-6000 VSML05 20261
Structural Mechanics
Department of Construction Sciences
Abstract
This study evaluates three Python-based frameworks for developing web applications for finite element analysis: Dash, Streamlit, and NiceGUI. The evaluation focused on interactivity, usability, and suitability for inclusion in a course at LTH about software development for technical applications. To compare the frameworks, the final course project was recreated in each of them while keeping the underlying computational model constant. The comparison was based on pedagogigal complexity, debugging, state-management, UI capabilities, maintainability, deployment, and relevance to current industry practices. The results indicate that Streamlit is the most suitable option for the course in its current form, mainly due to the lowered programming... (More)
This study evaluates three Python-based frameworks for developing web applications for finite element analysis: Dash, Streamlit, and NiceGUI. The evaluation focused on interactivity, usability, and suitability for inclusion in a course at LTH about software development for technical applications. To compare the frameworks, the final course project was recreated in each of them while keeping the underlying computational model constant. The comparison was based on pedagogigal complexity, debugging, state-management, UI capabilities, maintainability, deployment, and relevance to current industry practices. The results indicate that Streamlit is the most suitable option for the course in its current form, mainly due to the lowered programming threshold and a faster path to a functional result. Dash showed stronger long-term benefits in pedagogical and market-related qualities, but required much more effort in development. NiceGUI was the weakest option in this context due to a less smooth development workflow and a less mature ecosystem. The study concludes that Streamlit is currently the most appropriate choice, while Dash could become more attractive if additional support was provided in the course. (Less)
Abstract (Swedish)
I detta arbete undersöks möjligheten att införa ett webbaserat alternativ till den nuvarande Qt-baserade gränssnittsdelen i kursen VSMN20, Programutveckling för tekniska tillämpningar, vid Lunds Tekniska Högskola. Bakgrunden är en tydlig rörelse på programvarumarknaden mot webbaserade och molnbaserade lösningar, och frågan om hur man skulle kunna få in den förändringen i en kurs där studenter arbetar med mjukvaruutveckling med CALFEM för Python.

Syftet med arbetet är att identifiera det mest lämpliga ramverket för att skapa ett webbaserat gränssnitt till projektet i kursen, utan att göra det svårare för studenterna att uppnå kursens krav. För att göra detta valdes tre Python-baserade ramverk ut: Dash, NiceGUI, och Streamlit. Kursens... (More)
I detta arbete undersöks möjligheten att införa ett webbaserat alternativ till den nuvarande Qt-baserade gränssnittsdelen i kursen VSMN20, Programutveckling för tekniska tillämpningar, vid Lunds Tekniska Högskola. Bakgrunden är en tydlig rörelse på programvarumarknaden mot webbaserade och molnbaserade lösningar, och frågan om hur man skulle kunna få in den förändringen i en kurs där studenter arbetar med mjukvaruutveckling med CALFEM för Python.

Syftet med arbetet är att identifiera det mest lämpliga ramverket för att skapa ett webbaserat gränssnitt till projektet i kursen, utan att göra det svårare för studenterna att uppnå kursens krav. För att göra detta valdes tre Python-baserade ramverk ut: Dash, NiceGUI, och Streamlit. Kursens slutprojekt återskapades i samtliga tre ramverk för att kunna jämföra dessa. Jämförelsen baserades på kriterier kopplade till pedagogik och komplexitet, robusthet och felsökbarhet, tillståndshantering, gränssnittets möjligheter, utvecklingsbarhet, driftsättning till molntjänster, och marknadsrelevans.

Resultatet visar att de studerade ramverken har olika styrkor och svagheter. Dash framstår som det mest strukturerade och etablerade alternativet, med ett arbetssätt som inte bara ligger närmare moderna komponentbaserade ramverk som React, utan även hur det nuvarande Qt-baserade ramverket är uppbyggt. Det erbjuder även starka möjligheter för vidareutveckling, tydlig uppdelning mellan olika delar av applikationen, och ett rikt ekosystem av komponentbibliotek. Samtidigt kräver Dash mer kod, mer explicit struktur, och en högre programmeringsförståelse. Detta gör att tröskeln blir högre i en kurs där programmering inte är det primära förkunskapskravet.

Streamlit framstår som det ramverk som snabbast och enklast låter utvecklaren komma till ett fungerande och presentabelt resultat. Dess arbetssätt är mer förenklat, mer förutbestämt, och därmed mindre likt de strukturer som återfinns i etablerade ramverk. Just denna förenkling är också en styrka i denna jämförelsen då det för utvecklaren blir en mindre tröskel att ta sig över för att uppnå målen.

NiceGUI placerar sig i flera avseenden mellan de andra två, men bedöms i detta arbete vara det svagaste alternativet på grund av ett mindre ekosystem och ett arbetsflöde som upplevs som hackigt och mindre smidigt.

Arbetet visar också att driftsättning till molntjänster är möjligt för samtliga tre ramverk, men att det kräver vissa kompletterande filer för att importera beroenden och systempaket. Streamlit Community Cloud togs fram som den med den enklaste lösningen, men är dock begränsad till Streamlit.

Om fokus ligger på låg tröskel för att det webbaserade alternativet ska nå samma svårighetsgrad som den nuvarande Qt ramverket, och Qt designer metoden, framstår Streamlit som det mest lämpliga alternativet. Men vid andra prioriteringar kan man komma fram till andra slutsatser. Om kursen i framtiden kan ge mer stöd i gränssnittsutveckling och höja den programmeringsmässiga nivån, skulle Dash kunna bli ett mer attraktivt val, särskilt med tanke på att dess styrkor ligger på långsiktiga pedagogiska fördelar samt likhet med arbetsmarknadens arbetssätt.

Slutsatsen i detta arbete blir därför att Streamlit är det mest lämpliga alternativet för kursen i dess nuvarande form. Samtidigt pekar resultaten på att Dash också har tydliga kvaliteter som skulle kunna göra det relevant som ett alternativ. Ett naturligt nästa steg vore därför att låta ett webbaserat alternativ prövas i kursen i mindre skala och samla in återkoppling för att vidareutveckla upplägget. (Less)
Please use this url to cite or link to this publication:
author
Persson, Adam LU
supervisor
organization
alternative title
Evaluation of web-based user interface frameworks with a focus on finite element applications
course
VSML05 20261
year
type
M2 - Bachelor Degree
subject
keywords
NiceGUI, Streamlit, Dash, Plotly, CALFEM, framework
publication/series
TVSM-6000
report number
TVSM-6004
ISSN
0281-6679
language
Swedish
id
9226195
alternative location
https://www.byggmek.lth.se/english/publications/tvsm-6000/
date added to LUP
2026-05-25 11:15:21
date last changed
2026-05-25 11:15:21
@misc{9226195,
  abstract     = {{This study evaluates three Python-based frameworks for developing web applications for finite element analysis: Dash, Streamlit, and NiceGUI. The evaluation focused on interactivity, usability, and suitability for inclusion in a course at LTH about software development for technical applications. To compare the frameworks, the final course project was recreated in each of them while keeping the underlying computational model constant. The comparison was based on pedagogigal complexity, debugging, state-management, UI capabilities, maintainability, deployment, and relevance to current industry practices. The results indicate that Streamlit is the most suitable option for the course in its current form, mainly due to the lowered programming threshold and a faster path to a functional result. Dash showed stronger long-term benefits in pedagogical and market-related qualities, but required much more effort in development. NiceGUI was the weakest option in this context due to a less smooth development workflow and a less mature ecosystem. The study concludes that Streamlit is currently the most appropriate choice, while Dash could become more attractive if additional support was provided in the course.}},
  author       = {{Persson, Adam}},
  issn         = {{0281-6679}},
  language     = {{swe}},
  note         = {{Student Paper}},
  series       = {{TVSM-6000}},
  title        = {{Utvärdering av ramverk för webbaserade användargränssnitt med fokus på tillämpningar inom finita elementberäkningar}},
  year         = {{2026}},
}