Thank you all for the kind words - I'm very chuffed and excited to develop this further! Sorry also for sluggish response - it's been a super busy week. Some combined responses below...
@Malcolm - Since much of my work deals with creating visualizations of all sorts (not just data viz in the traditional sense), my mission for this project is very much about making these things easier & the process of data/design exploration more fluid. Projects like Processing & d3 are a great stepping stone in that direction as well and provide a much more direct route from pure data to graphic representation, but for me the main shortcoming of all those frameworks is their focus on pure drawing functionality, whereas geom is all about providing the underlying geometric models. Eg. Processing/Quil/OpenGL/WebGL etc. make it very easy to *draw* a line or other shape, but they have absolutely no concept of it and don't provide any functionality in order to meaningfully work with say a bunch of lines as entities, e.g. to find intersections, calculate a curve from them, turn it into a polygon, sort shapes by area or extrude them into a 3d object etc. I've been going on about this lack of models for a decade whilst using Processing and it too was the initial impetus for starting toxiclibs, the previous iteration of this new geom toolkit. I think, especially when dealing with data visualization, the presence of geometric models/entities representing the to-be-visualized data is of core essence and I don't know of any other Clojure lib dealing with this (to this extend) so far. Having data sets transformed/mapped into abstract geometric models, it's then easy to create visualizations in all sorts of formats, but one can't do this if only working with an output-specific graphics lib (e.g. SVG centric). Also, one of the next releases under the thi.ng umbrella will be a RDF and SPARQL-like toolkit, which will provide a more direct (and missing) link to use this geom package for data viz purposes. I've already used both (+luxor) in combo to create some 3d visualizations of open data sets about London boroughs for the ODI Summit last October. For that project we had approx. 1600 CSV files of published borough spending data, ambulance & crime stats and GPS shapes from the UK Statistics office. These were all combined into an RDF dataset, from which I created a 60sec animated 3d heatmap of the boroughs, rendered in full HD with Luxrender on AWS with 350 CPUs. At my workshop at Resonate in Belgrade (in 2 weeks time) we will explore this kind of approach further. Next time you're at MastotonC, you should ask around if someone @ ODI can show you the video. An image of it is here[1]. @Kuba - I'm afraid toxiclibs is pretty much a closed chapter by now and it's been over 2 years since I worked on my last Java project. I've been meaning to cut one more release (0021), which I've been sitting on and using for various workshops, but getting this out is always a (too) daunting process (also thanks to Processing 2.0) and honestly is very low priority over the next 4 months... The source is up on bitbucket[2] though, but I can't "release" this until I've checked & updated all 100+ examples and added docs for the last additions. @Lee - Thank you too! The GP part of my DevArt project[3] is (as I said in the video) more metaphorical. The way I see it is that visitors in the gallery will fulfill the fitness function and vote on designs created by the people using the online design tool. Every day the visitors will choose one of the created objects to be 3d printed in the gallery and hence indirectly (and over time) inform design decisions made by the "designers" (who want their creation to be fabricated). These "designers" are, in a way, the population of the GP and continuously & autonomously evolve the genome of the generative design process encoded by the tool. The design options will be fairly limited and only involve subdivision, extrusion & replication steps. These steps are encoded in an AST for each object, for which I still have to create an easy-to-use visual programming env, in the browser. To allow for cross-breeding & re-use, people will be able to cut & paste short "DNA" sequences from other existing objects. Each such re-use will be logged and forms a graph of co-authorships. [1] http://twitter.com/reasonsto/439416380761591809 [2] http://hg.postspectacular.com/toxiclibs/ [3] https://devart.withgoogle.com/#/project/16501507 On 11 Mar 2014 07:07, "Baishampayan Ghose" <b.gh...@gmail.com> wrote: > Brilliant work. Major kudos for writing a literate program. ~BG > > On Tue, Mar 11, 2014 at 3:02 AM, Karsten Schmidt <toxmeis...@gmail.com> > wrote: > > It is my absolute pleasure to finally announce the first public > > release of the 2d/3d geometry library/toolkit: thi.ng/geom > > > > Having worked on this regularly since late 2011 as successor of my > > Java-based toxiclibs.org project, the new project has already > > undergone three complete overhauls as I've been improving my grasp of > > Clojure. The project currently consists of 26 namespaces and 6500+ > > lines of code. > > > > You can find all existing details, sources & initial examples at: > > https://github.com/thi-ng/geom/blob/master/src/index.org > > > > Leiningen coords: [thi.ng/geom "0.2.0"] (available from Clojars) > > > > This project is part of a bigger & rapidly growing collection of > > Clojure libraries targeted at the wider computational/generative > > design context. All libraries in the thi.ng collection are (will be) > > developed in a literal programming format to also encourage their use > > in teaching contexts and generally try to improve the state of > > documentation & managing source code. Clojure with its focus on > > isolated functionality is particular nice to work with in this sense > > and Org-mode has completely transformed my way of working. > > > > Since this is only the 1st release and I've planned a few more > > (potentially) breaking API changes I cannot currently accept major > > pull requests until the API is more solid (and once I'm less up > > against deadlines). In general though, I hope this project has a wide > > enough scope & license to encourage further communal development. > > > > Lastly, if you're not too allergic to strong German accents, you can > > also watch (and follow along) a little live coding session I've done > > with Paul Kinlan @ Google Developers Live last month: > > > > http://youtu.be/tKIVJ2TaS2k?t=20m9s > > > > Happy coding! :) > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to clojure@googlegroups.com > > Note that posts from new members are moderated - please be patient with > your first post. > > To unsubscribe from this group, send email to > > clojure+unsubscr...@googlegroups.com > > For more options, visit this group at > > http://groups.google.com/group/clojure?hl=en > > --- > > You received this message because you are subscribed to the Google > Groups "Clojure" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to clojure+unsubscr...@googlegroups.com. > > For more options, visit https://groups.google.com/d/optout. > > > > -- > Baishampayan Ghose > b.ghose at gmail.com > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.