Julia MeshCat SPH 流体シミュレーション (Mesh)
Julia MeshCat ライブラリを用いた、水柱崩壊のシミュレーションです。流体のシミュレーションには、SPH (Smoothed Particle Hydrodynamics) 法を使用しています。前回は、PointCloudを用いて、粒子による描画を行いました。今回は、Marching...
View ArticleWebGPU SPH シミュレーション(3)
最近、W3Cが WebGPUとWGSL仕様書の published version を出すようになりました。(6月7日修正) WGSL の最近の仕様変更により、4月26日付のプログラム「WebGPU SPH シミュレーション(2)」は実行できなくなりました。以下のようなエラーとワーニングが出ます。前回は、compute shader の変更でした。今回は vertex shader と...
View ArticleWebGPU WGSL 仕様 update
最近のWebGPUとWGSLの仕様 update により、前回プログラムにエラーが出て表示できなくなっていました。WebGPUでは、ワーニングが出ます。Error : WGSL E1: a compute shader must include 'workgroup_size' in its attributes fn main([[builtin(global_invocation_id)]]...
View Article物理シミュレーション 剛体の衝突 1
物理シミュレーションの勉強のため、剛体の衝突についてまとめてみました。剛体衝突の物理シミュレーションは、主に以下の3つの方法で行われています。1 Force Based2 Position Based(Constraint)3 Position Based(ShapeMatching)衝突のシミュレーションを行うには、衝突検出処理と衝突応答処理が必要になりますが、これらは後者に相当します。1番目の...
View Article物理シミュレーション 剛体の衝突 2 ( Force Based )
Force Based による、剛体の衝突シミュレーションです。[ 実行結果 ]2Dシミュレーションメッシュの描画には、 BabylonJS を使用しています。シミュレーションの方法壁との衝突、剛体同士の衝突での力、トルクの計算は、以下を参照しています。「WebGLによる 物理シミュレーション」( 酒井幸市、工学社 ) 第4章 剛体の衝突1 時間積分 剛体に作用する力 ・重力 force_g...
View Article物理シミュレーション 剛体の衝突 3 PositionBased ( Constraint )
PositionBased(Constraint) による、剛体の衝突シミュレーションです。[ 実行結果]2Dシミュレーションメッシュの描画には、 BabylonJS を使用しています。参考にした文献とサイト Position Based Dynamics...
View Article物理シミュレーション 剛体の衝突 4 PositionBased ( ShapeMatching )
PositionBased ( ShapeMatching ) による、剛体の衝突シミュレーションです。[ 実行結果]参考にした文献とサイト Meshless Deformations Based on Shape Matching https://matthias-research.github.io/pages/publications/publications.html藤澤...
View ArticleWebGPU Triangle and Instancing (WebGPU, WGSL update)
06/28/2022chrome canary version 105 WebGPU, WGSL 06/17/2022chrome canary について(WebGPU を利用するには、chrome://flags/#enable-unsafe-webgpu を設定する。) この時点では GPUDevice の読み込みが不安定になっています。 requestDevice の read error...
View ArticleChrome Stable WebGPU
2022/07/05/chrome stable version 103 WebGPU: version 2022/05/13 WGSL: version 2022/04/11chromeの安定版(現在のバージョンは 103)でも、WebGPU を利用できます。 WebGPU Samples...
View ArticleBabylon.js WebGPU Cloth Simulation
Babylon.js WebGPU を用いて、XPBD(extended position-based dynamics) による Cloth シミュレーションを行なってみました。 XPBD の計算は、compute shader で GPU計算を行なっています。XPBD による Cloth...
View ArticleBabylon.js WebGPU Cloth Simulation (2)
前回アップした、XPBD(extended position-based dynamics) による Cloth シミュレーションの解説です。1 GPU StorageBuffer compute shader で扱うデータは、storage buffer を介して利用する。 mesh の各vertex point のデータは、Particle 構造体とし、そのメンバーとして...
View ArticleBabylon.js WebGPU Cloth Simulation (3)
前々回アップした、XPBD(extended position-based dynamics) による Cloth シミュレーションの解説です。今回はマウス操作について説明しています。実行結果cloth の上でマウスをクリックしドラッグすると、cloth が引っ張られた状態になります。1 mouse down mesh 上をマウスでクリックして、クリックされた mesh の index...
View ArticleGNUstep CoreGraphics (1)
今回は、ブログタイトルから離れて、GNUstepについて書いています。最近 GNUstepや Objective-Cについての記事が、2、3報告されています。今更のObjective-C | 貯え 小道具 興味ない?M1 Mac-Ubuntu20.04でGNUstep | 貯え 小道具 興味ない?GNUstepをWindowsで試すならWSLを使う-Ubuntu 20.04...
View ArticleGNUstep CoreGraphics (2)
前回報告した ProjectCenter を使って作成した CoreGraphics のプログラムです。実行結果起動時の画面 (Draw1) Draw2(メニューから Draw → Draw2 を選択) Draw3 Draw4プログラム(プロジェクト生成時以降、編集したプログラム) Headers AppController.h #ifndef _PCAPPPROJ_APPCONTROLLER_H...
View ArticleSwift CairoGraphics
前回報告した GNUstep CoreGraphics は、「今更 GNUstep?」感がありますので、同様な事を Swift で行ってみました。Linux(Lubuntu 22.04) の Swift(v5.8) を使用しています。(Swift のインストールは、UbuntuでSwiftの環境構築を行う方法を参照。 バージョンは Ubuntuバージョンに揃えます。)cairo...
View ArticleGNUStepSwiftBridge
discuss-gnustep mailing list(https://mail.gnu.org/archive/html/discuss-gnustep/) の8月のリストに、以下のような投稿がありました。 Swift calling into GNUStep Progressgithub:...
View ArticleGNUStepSwiftBridge & CairoGraphics
前回の GNUStepSwiftBridge を利用して、CairoGraphics を行いました。実行結果起動時メニューアイテム(AItem)をクリック時InfoPanel の表示前回からの変更点 Resources ファイルの .build/debug ディレクトリへのコピー 前回はResouces を手動で コピーしていましたが、これをプログラム内で行うようにしました。FileManager...
View ArticleGNUStepSwiftBridge & OpenGL
GNUStepSwiftBridge を使って NSOpenGLView への描画にトライしました。[ 実行結果 ]Swift で OpenGLによる描画のサンプルがあります。GitHub - sakrist/Swift_OpenGL_Example: :star: Swift OpenGL Example written with swift (for Ubuntu, macOS, iOS and...
View ArticleSwift Vulkan & GNUStepSwiftBridge
Swif言語を用いてVulkanによる描画にトライしました。 GNUStepSwiftBridgeと組合せて、NSWindow上のボタンから実行できるようにしています。Vulkanの描画は、glfwを使ってXWindowに描画します。[ 実行結果 ]...
View ArticleSwift Vulkan & GNUStepSwiftBridge (2)
前回につづき、Swift Vulkan & GNUStepSwiftBridgeについての記事です。今回は、Vulkanウィンドウを表示しながらGNUstepウィンドウやメニューの操作が出来るようにしました。[ 実行結果 ] (起動時の状態から、NSWindow上のボタンとメニューを操作しているところ)Vulkanウィンドウ(glfw window)は、NSWindowに貼り付けています。...
View ArticleCamlkit & GNUstep
Cocoa frameworksのOCaml bindingsに、Camlkitがあります。今回このCamlkitを試してみました。[ANN] Camlkithttps://discuss.ocaml.org/t/ann-camlkit-macos-ios-gnustep-toolkit-for-ocaml/14722 Camlkit project...
View ArticleCamlkit GNUstep Example
前回に続き、camlkit-examplesを試してみました。 camlkit-exampleshttps://github.com/dboris/camlkit-examplesgnustep用のexampleとして、 c-gnustep-appがあります。これを試してみました。[実行結果]下記修正箇所があります。 1 dune file...
View ArticleCamlkit GNUstep with Gorm
GNUstepでは、gormファイルを読み込んでアプリを起動することができますが、 Camlkitでも可能かトライしてみました。[実行結果]アプリの起動時に、gormファイル読み込んだところ。 gormファイルは、Gormアプリの [New Application] で生成したもの。ファイル構成gnustep-app /Resources MyApp.gorm(上記のgormファイル)...
View ArticleCamlkit GNUstep
gorm ファイルからの起動とcamlkit-examplesの2-default-appを組み合わせてみました。[実行結果]メニュー(Main Menu)がgormアプリで作成したもので、起動時に読み込んでいます。ファイル構成gnustep-app /Resources MainMenu.gorm Info-gnustep.plist dune dune-project...
View ArticleCamlkit GNUstep CoreGraphics
Camlkitを用いて、GNUstep CoreGraphicsにトライしてみました。GNUstepのlibs-opalのTestsにあるpdf.mを参考にして、同様な方法でPDFContextに描画できました。[実行結果](黒の長方形一つ描画している)camlkitのv0.2.0からCoreFoundation,...
View ArticleCamlkit v0.2 & GNUstep
GhostBSD の新しい バージョン、GhostBSD-24.07.3 がリリースされました。これまで利用していた devtools (os-generic-userland-devtools) が変更になっています。devtools をインストールするには、以下のようにします。 sudo pkg install -g 'GhostBSD*-dev'Camlkit のバージョンが v0.2...
View ArticleCamlkit v0.2 & GNUstep (2)
前回報告した camlkitGS ライブラリを用いて、GNUstepのAppKit と CoreGraphics プログラムが実行できます。[実行結果] AppKitCoreGraphicsAppKit プログラム (dune init project で作成、その後libとtestを削除している。)/bin dune main.mldune(executable (public_name...
View ArticleCamlkit & GNUstep ImageView
camlkitとGNUstepを使用して、imageを表示してみました。 NSImageView を使用している。[実行結果]画像はGNUstep.tiff button, label(TextField), image, image付きbuttonを表示しています。プロジェクト構成 (dune init project で作成。前回同様、build, exec の後lib, test...
View ArticleCamlkit & GNUstep OpenGLView
OCamlの OpenGL用のライブラリ gles3 を利用して、GNUstepの NSOpenGLView に triangle を描画してみました。shader を使って描画します。 gles3 https://github.com/craff/gles3[実行結果]プロジェクト構成/bin /Resources MainMenu.gorm Info-gnustep.plist dune...
View ArticleCamlkit & GNUstep OpenGLView (2)
前回に続き OpenGLView の記事です。 gles3 https://github.com/craff/gles3のプロジェクト内の examples に rotating cube があります。これを NSOpenGLView で描画してみました。[実行結果]cube の回転には NSTimer を用いています。プロジェクト構成/bin /Resources MainMenu.gorm...
View Article