Oh adding the build files for tfex would be good
A => apps/tfex/.formatter.exs +4 -0
@@ 0,0 1,4 @@ 
+# Used by "mix format"
+[
+  inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
+]

          
A => apps/tfex/README.md +12 -0
@@ 0,0 1,12 @@ 
+# Tfex
+
+A transform tree for robotics stuff.
+
+## Installation
+
+```
+apt install libblas-dev
+# other BLAS libs in Debian include: openblas libblis probably others
+mix deps.get
+mix test
+```

          
A => apps/tfex/mix.exs +30 -0
@@ 0,0 1,30 @@ 
+defmodule Tfex.MixProject do
+  use Mix.Project
+
+  def project do
+    [
+      app: :tfex,
+      version: "0.1.0",
+      elixir: "~> 1.15",
+      start_permanent: Mix.env() == :prod,
+      deps: deps()
+    ]
+  end
+
+  # Run "mix help compile.app" to learn about applications.
+  def application do
+    [
+      extra_applications: [:logger]
+    ]
+  end
+
+  # Run "mix help deps" to learn about dependencies.
+  defp deps do
+    [
+      # {:dep_from_hexpm, "~> 0.3.0"},
+      # {:dep_from_git, git: "https://github.com/elixir-lang/my_dep.git", tag: "0.1.0"}
+      {:matrex, "~> 0.6.0"},
+      {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
+    ]
+  end
+end

          
A => apps/tfex/mix.lock +6 -0
@@ 0,0 1,6 @@ 
+%{
+  "dialyxir": {:hex, :dialyxir, "1.4.3", "edd0124f358f0b9e95bfe53a9fcf806d615d8f838e2202a9f430d59566b6b53b", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "bf2cfb75cd5c5006bec30141b131663299c661a864ec7fbbc72dfa557487a986"},
+  "elixir_make": {:hex, :elixir_make, "0.8.3", "d38d7ee1578d722d89b4d452a3e36bcfdc644c618f0d063b874661876e708683", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "5c99a18571a756d4af7a4d89ca75c28ac899e6103af6f223982f09ce44942cc9"},
+  "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
+  "matrex": {:hex, :matrex, "0.6.8", "ccb491e661bae7931ee6b0e68f5e1cd28528e5360a59bc3ab4d759b89be1701e", [:make], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "043ef9fdd9809b012568915f2fc396ea5c5631fd792f75c1148f03d478d60901"},
+}

          
A => apps/tfex/test/test_helper.exs +1 -0
@@ 0,0 1,1 @@ 
+ExUnit.start()

          
A => apps/tfex/test/tfex_test.exs +8 -0
@@ 0,0 1,8 @@ 
+defmodule TfexTest do
+  use ExUnit.Case
+  doctest Tfex
+
+  test "greets the world" do
+    assert Tfex.hello() == :world
+  end
+end