Re: [julia-dev] topological package

255 views
Skip to first unread message

Tom Short

unread,
Apr 4, 2013, 1:06:23 PM4/4/13
to julia-dev
I don't know anything about this area, but Julia is good about what I'll call "support code" like reading STL files. If some of your support code is already available as FORTRAN, C, or C++ libraries, then writing a Julia interface is generally pretty easy and sometimes ridiculously easy. If some of that support code is already available in Python, Matlab, or R, you have options for interfacing with all of them:

* https://github.com/stevengj/PyCall.jl
* https://github.com/lindahua/MATLAB.jl
* https://github.com/lgautier/Rif.jl




On Thu, Apr 4, 2013 at 12:48 PM, martins....@ipleiria.pt <martins....@ipleiria.pt> wrote:

I am not yet familiar with the Julia programming language itself. I am a Matlab user and I am currently running a reaserch project funded by the Portuguese National Science Foundation that aims at the development of what could be called a topological toolbox, and I was planning to do it in Matlab language. It turns out that after learning about the julia project it is clear that such an enterprise makes sense only in a language such as julia.
Question: is it safe to start developing such a package, or it is too general and would be too much to be a package? It would include for instance the possibility of reading STL files, computing basic geometrical operations on triangulated surfaces (that only depend on topology such as union, intersection, symmetric difference, etc); this will certainly overlap with other areas already under development such as graph theory, combinatorics, graphical images, etc. This is why it may not be simple to give a straight answer to my question. Also it would be very nice to engage some collaboration.

Nelson.


Tracy Wadleigh

unread,
Apr 4, 2013, 2:54:34 PM4/4/13
to juli...@googlegroups.com
Nelson:

I am the author of the Meshes.jl package, which includes functionality for the extraction of a mesh representation of an isosurface of a 3D scalar function sampled on a grid (via marching tetrahedra) and (soon, at least, when I get it debugged) an algorithm for mesh simplification via edge collapse. michelk is the author of SurfaceMesh.jl, and is working on mesh related things as well. So you wouldn't lack for potential collaborators.

I can also say that these sorts of combinatorial-y algorithms aren't often a good fit for Matlab, but are generally right at home in Julia.

--Tracy

Simon Kornblith

unread,
Apr 4, 2013, 9:02:19 PM4/4/13
to juli...@googlegroups.com
I have some very basic code to read (binary) STL files and convert them to some obscure 3D formats in https://github.com/simonster/obscure-3d-format-conversion-tools. As far as I can tell, STL is an incredibly simple format.

Simon

Alessandro "Jake" Andrioni

unread,
Apr 4, 2013, 10:12:12 PM4/4/13
to juli...@googlegroups.com
I wrote Catalan.jl, a small package about combinatorics. It is right now most focused on enumerative combinatorics (as it is close to my research topics), and I'll probably start writing some lattice-related functions now, but I'd like to expand it as much as I can, so if you need anything related, feel free to ask here or on the Github repository that I'd be happy to oblige!

I also have a package (not yet in METADATA) for geometric algebra, GeoAlg.jl[1], which I wish to develop it as much as I can to be a considerable alternative to the SymPy module[2] or to Gaigen[3]. It may prove useful to deal with some geometric operations (for example, you can use it to calculate intersections between spheres in a fully coordinate-free manner).

I'd also be happy to help you directly with your package, given enough references for me to understand it :)

Thanks,
Alessandro

martins....@ipleiria.pt

unread,
May 6, 2013, 2:28:55 PM5/6/13
to juli...@googlegroups.com

We could finally translate some of the functions that were already implemented in Matlab into Julia (thanks Tom for giving the possibility to interface with Matlab, but we decided to rewrite everything directly in julia). The file topology.jl is available at (https://github.com/ghaspias/Topology) and it contains three functions: stl2tri, readstl, indexstl; of course it is supposed to be completed with others more. The function readstl does the same thing as Simon’s conversion one, it is only implemented in a different way. We also expect to complete it in order to be able to read ASCII format files.

-Tracy, does your package allows the visualization of triangulated surfaces, as the ones resulting form the readstl funtion? If not, is it too difficult to implement such a thing?

- Alessandro, do you also work with permutations? For example will you consider a function to “remove loops” from a sequence, in the sense that given [1 2 3 4 5 6 1 8 9 10 5 12 3 14 9 16 17 1] would return for instance  [ [17 1 6 5 10 9 16 17], [1 8 9 14 3 2 1],[5 12 3 4 5]]? The sequences are considered as directed graphs in the plane, representing topological regions in the plane, with the interior of the region being allways on the left, say, so that the goal of performing the above separation is to be able to have the region well defined. This is the kind of thing we are interested: modeling geometrical entities with combinatorial ones, loosing of course much of the geometry, but keeping the topology.

Reply all
Reply to author
Forward
0 new messages