数値シミュレーションの結果を解析するためのWebアプリケーションです。
有限差分時間領域(FDTD)法を用いたシミュレーションの結果を、単純な数値計算の結果と合わせてグラフに表示します。 データの選択をダイアログで行えるようにし、データを保存する際にもダイアログで名前や保存先を選択できます。 アプリケーションを各端末にインストールせずとも、ブラウザから簡単に数値シミュレーション結果を確認できます。
AWSにデプロイしているものと、Render.comにデプロイしているものは同じです。 Render.comはHobbyプラン(フリープラン)で利用しているため、サーバーがスリープ状態の場合は起動に30秒から1分程度かかる場合があります。
| OS | 推奨条件 |
|---|---|
| macOS |
|
| Windows | Microsoft Edge 最新版 |
| iOS |
|
| iPadOS | Safari 最新版 |




画面収録の際に、画面下部が切れてしまっています。後日、新しいものに差し替える予定です。
映像は、Render.com版のものですので、サーバーが起動するまで時間がかかっています。
※音声はありません。
開発期間: 2025年7月20日 - 2025年11月17日 (運用中)
使用言語:
Python(バックエンド), TypeScript(フロントエンド)
使用ライブラリ等:
NumPy, SciPy, Pandas, FastAPI, Uvicorn, React, React Router, React plotly.js, shadcn/ui
使用ツール:
pyenv, pyenv-virtualenv, pip, npm, Git, Docker
使用サービス:
GitHub, Render.com, AWS Amplify, Amazon Elastic Container Registry, Amazon Elastic Compute Cloud, Amazon CloudFront, Amazon Route 53
開発経緯:
以前、PySide6を用いて開発を行っていましたが、三次元グラフの実装において技術的な課題に直面しました。 そこで、ライブラリが充実しており、参考になる技術情報も豊富なWeb技術を活用することで、この課題を解決できると考えWebアプリケーションへの移行を決意しました。 また、Webアプリケーション化により端末ごとのインストールが不要で手軽にシミュレーション結果を確認できるなど利便性の向上も期待できました。 本開発は、これらの課題解決に加え、Webフロントエンド開発において広く普及しているReactの習得も兼ねてスタートしました。
技術選定理由等:
フロントエンドには、情報量が豊富で開発の知見が得やすいReact(TypeScript)を採用しました。 アプリケーションの規模を考慮して大規模なフレームワークではなくReact Routerを採用し、UIコンポーネントには導入が容易かつ機能が充実しているshadcn/uiを使用しました。 GitHub連携により、コードをプッシュするだけでビルドからデプロイまでが自動的に行われ、かつHobbyプランにより無料で運用開始できるため、最初のデプロイ先にはRender.comを選びました。 その後、広く用いられているAWSを用いた開発経験を積む目的で、フロントエンドをAWS Amplifyで、バックエンドをAmazon ECR、Amazon EC2等で再構築しました。 併せて、ポートフォリオサイトのためにAmazon Route 53で取得したカスタムドメインを利用して、URLをわかりやすいものにしました。
技術的にこだわった点や工夫した点