That's a good point, Bruce! To be honest, I don't know anymore, but it
makes complete sense to change it. Consider it done! :)

As for your mapping question, yes, of course! I've done a few of them.
E.g. the first pic on the website [1] was a project for The ODI in
2013 and is a map of different council/borough stats of London (here
knife crime). The shape files were first retrieved & processed with
the thi.ng/trio lib directly from the UK statistics office's SPARQL
endpoint [2], then projected to Mercator, converted to 2d polygons,
smoothed them and then extruded as 3D walled meshes and exported as
STL files using geom. To create that rendered image, another function
then combined all borough meshes into a complete render scene for
Luxrender (using the luxor lib). Since this all was for a 60sec
animation, I also wrote the tweeny lib for that project to allow me to
define the timeline for the various camera, mesh, light & shader
changes. The whole bundle was then sent to EC2 and rendered on 340+
CPUs... basically, spawned a private render farm.

Alternatively with < 30 lines of code you could query any UK
constituency (or use similar endpoints for other countries), do those
initial shape transformations and send the resulting STL mesh file
straight to a 3D printer... For online use, of course the SVG or WebGL
modules would be more interesting, but these really would just deal
with that last transformation/visualization step, i.e. turning a
thi.ng.geom.Polygon2 into an SVG <polygon> node or tesselate it and
stuff it into WebGL buffer to display...

For more flexible mapping, it'd be great to port some/all of the
projections from [3] in its own clj lib for easier (and non-JS
related) access...

[1] http://thi.ng/img/04.jpg
[2] http://statistics.data.gov.uk/doc/statistical-geography
[3] https://github.com/d3/d3-geo-projection/

Hth!

On 25 February 2015 at 22:34, Bruce Durling <[email protected]> wrote:
> Karsten,
>
> Is there a reason why you went with a README.md and then an index.org
> rather than a plain README.org?
>
> (love all the rest of it and loved your use of it at The Barbican. I
> need to get my head around it all. I'm wondering if I can use it for
> some of the geographic and other charting things I do a lot of).
>
> cheers,
> Bruce
>
> On Wed, Feb 25, 2015 at 5:06 AM, Karsten Schmidt <[email protected]> wrote:
>> Hi guys,
>>
>> thi.ng is a collection of over a dozen largely x-platform Clojure &
>> Clojurescript libs for computational/generative design & data
>> visualization tasks.
>>
>> I just wanted to give a little heads up that this project has recently
>> seen a number of releases and, as a whole, by now is generally quite
>> stable and usable (*is used*) for realworld projects (although most
>> libs remain in constant parallel development to make them more feature
>> complete). I've collated a number of images of projects and links to
>> the most important libs here:
>>
>> http://thi.ng/
>>
>> Most notably of those:
>>
>> http://thi.ng/geom
>> By far the largest sub-project and backbone for most others: A 2D/3D
>> geometry package w/ comprehensive vector algebra, swizzling,
>> intersections, matrix types & helpers, quaternions, pure shape
>> primitives with ~50 protocols for polymorphic enquiry & manipulation,
>> meshes (incl. I/O), mesh subdivisions, CSG mesh ops, Verlet physics
>> engine (only particles, springs, behaviors)... Most of this lib is
>> pure geometry w/ no rendering specifics, although there're separate
>> modules for SVG rendering w/ shader support & decorators [1], WebGL
>> wrapper and converters from shapes/meshes to VBOs and various shader
>> presets/utils.
>>
>> http://thi.ng/shadergraph
>> GLSL (WebGL) pure function library & dependency graph (based on
>> com.stuartsierra/dependency), GLSL minification during CLJS compile
>> time
>>
>> http://thi.ng/color
>> RGB, HSV, CMYK, CSS conversions, color presets (incl. D3 category schemes)
>>
>> http://thi.ng/luxor
>> Complete scene compiler DSL for http://luxrender.net, based around 
>> thi.ng/geom
>>
>> http://thi.ng/morphogen
>> Declarative 3D form evolution through tree-based transformations,
>> basically an AST generator of geometric operations to transform a
>> single seed node into complex 3D objects
>>
>> http://thi.ng/tweeny
>> Interpolation of nested (presumably animation related) data
>> structures. Allows tweening of deeply nested maps/vectors with
>> completely flexible tween fns/targets and hence easy definition of
>> complex timelines
>>
>> http://thi.ng/validate
>> Purely functional, composable data validation & optional corrections
>> for nested data. Supports both maps & vectors, wildcards, comes with
>> many predefined validators, but extensible...
>>
>> http://thi.ng/trio
>> A generic, non-RDF specific triple store API and feature rich
>> SPARQL-like query engine
>> (and my prime example of using the literate programming approach with
>> org-mode[2][3])
>>
>> Last but not least: Super special thanks are due to the following people:
>>
>> Rich, Alex + rest of clojure.core
>> David (+everyone else involved) for the immense effort on making CLJS
>> proper useful,
>> Chas, Kevin and anyone else working on CLJX...
>> none of this would have been possible without these amazing tools!
>>
>> Best, K.
>>
>> Ps. There're a number of other libs in this collection which are in
>> dire need of updating (last touched spring 2013) - these are related
>> to general OpenCL functionality and voxel rendering. Some of the
>> example images on the above site were created with these...
>>
>> [1] https://github.com/thi-ng/geom/blob/master/geom-svg/src/examples.org
>> [2] https://github.com/thi-ng/trio/blob/master/src/query.org
>> [3] http://orgmode.org/
>>
>> --
>> Karsten Schmidt
>> http://postspectacular.com | http://thi.ng/
>>
>> --
>> Note that posts from new members are moderated - please be patient with your 
>> first post.
>> ---
>> You received this message because you are subscribed to the Google Groups 
>> "ClojureScript" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/clojurescript.
>
> --
> Note that posts from new members are moderated - please be patient with your 
> first post.
> ---
> You received this message because you are subscribed to the Google Groups 
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/clojurescript.



-- 
Karsten Schmidt
http://postspectacular.com | http://toxiclibs.org | http://toxi.co.uk

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to