« first day (2462 days earlier)      last day (2023 days later) » 

12:16 AM
Oh god Arrow is horrifying. You need the Arrowheads to set a different marker object for each different arrow style. Hm... I think I can support a number of the basic styles for now at least.
 
 
3 hours later…
2:49 AM
@halirutan Axes are killing me right now. I've almost fully reimplemented the axes code...but it's painful. I can't believe the FE doesn't provide access to them. That's such terrible design.
 
@b3m2a1 Yep, been there.
OK, gotta sleep. See you later.
 
In case anyone needs a function to get a set of axes and ticks:
getPlotTicksObjects[{{xmin_, xmax_}, {ymin_, ymax_}}, {x0_, y0_}] :=

 Module[{xbase, ybase, ends, xdiff, ydiff},
  xbase = Charting`ScaledTicks[{Identity, Identity}][xmin, xmax, 25];
  ybase =
   Rest@Charting`ScaledTicks[{Identity, Identity}][ymin, ymax, 25];
  {xbase, ybase} =
   MapIndexed[
      If[Mod[#2[[1]], 5] == 4,
        ReplacePart[#, 3 -> {2, 1}*#[[3]]],
        ReplacePart[#, 2 -> ""]
        ] &,
      #
      ] & /@ {xbase, ybase};
  xdiff = (xmax - xmin);
  ydiff = (ymax - ymin);
It works fine but needs a bunch of special casing I'm sure to handle all sorts of random things
 
 
1 hour later…
4:17 AM
@b3m2a1 Super nice!
 
@C.E. I'm getting some final directive handling stuff up and running then I'm thinking I'll put it away for the day.
It'll need much more work to make it as robust as it needs to be, but I will need a break from the annoyance of the FE sometime soon.
 
ok, it's a good day's work for sure.
 
Good project too. I like it. I'm excited toe have it in a robust enough state to actually be able to do interesting things with it.
 
 
1 hour later…
5:37 AM
@C.E. Text is truly a nightmare to wrangle well. Mathematica just turns it into a FilledCurve effectively. This is what my current code does with Plot[Sin[x], {x, 0, 2 Pi}]:
Does the chat not display SVG or is my file malformatted?
Turns out it's my file
 
 
1 hour later…
6:44 AM
@b3m2a1 Looking at the source code for the SVG file it looks like it is using <text> elements?
 
@C.E. yeah that was my immediate thought, but it's a pain...
I don't know if there's something better
 
@b3m2a1 Why is it bad?
 
@C.E. I had to remap my SVG coordinates from the original space (0, 2 Pi)x(-1, 1) to a much larger span to get it to work cleanly.
Everything's rescaled a few hundred times or else the font-sizes had issues no matter what I tried
Also I can't get the fine-grained placement of the elements relative to their anchor-points the way I could with Mathematica (the dx and dy attributes are relative to the full graphics).
It's kinda kludgey right now
On the other hand you can actually select the labels unlike with Mathematica SVG export so that's a neat first thing that's differnet.
 
Yes, I really like using the text element for that reason. I'll take a look at this when I get home to better understand the problem.
 
7:26 AM
I think it's fine for now. Just took some wrangling and might break in the future. One thing I should probably do at this point is add things like plot labels and find a way to support legend elements.
And then maybe try out a workflow or two with tooltips or custom labeling inside the elements.
I think that's on the docket for tomorrow or sometime later this week, though
 
 
2 hours later…
9:40 AM
@b3m2a1 Will you put this into the package so that we have it anywhere for reference?
 
 
7 hours later…
4:51 PM
A 2D Ellipsoid does not render correctly (in Graphics) when the second argument is a matrix. RegionBounds is terribly slow on a simple ellipse. It takes 1.6 s on my computer. RegionBounds[..., "Sufficient"] is fast but it gives a wrong result. Ellipsoid is in a pretty bad state :-(
 
5:21 PM
@b3m2a1 - I am very interested in having open source connections for the Molecule. I'm wrapping up the code I use in alpha to link with the CDK library into a package and put it on github. Likewise with open babel, once the basics of the Molecule are secure, we can make a link to open babel and put that on github as well. But the core Molecule functions I can't say about open sourcing that
as to the Eckhardt rotations and axis alignments - it definitely won't do that with system functions, but I'd like for the interface to be such that these kinds of transformations can be handled well by top-level code
I'm not all that familiar with Eckhardt rotations - have heard them referred to as 'conditions', but haven't seen a practical application of them so not quite sure how they would be implemented. But in the end applying some kind of TransformationFunction onto a molecule's coordinates should be an easy and fast operation.
We can talk more about how vibrations should be represented - I'm imagining something like a HarmonicAnalysisResultObject that would contain the eigen energies, unit vectors for the 3N-6 internal coordinates, unit vectors for the vibrational modes, and some way of applying a translation along one of those vectors, etc
 
6:22 PM
@JasonB. definitely this stuff shouldn't go in the "System`" context, but things like Eckhardt rotations are incredibly useful when working with large-amplitude motions or things like DMC. Basically anytime you want to compare a molecule to a reference structure.
In terms of vibrations, I think some HarmonicAnalysisResultObject would be nice, but I almost never am able to assume harmonic vibrations so that obviously appeals somewhat less to me, but I do think if you had the building blocks of the Harmonic analysis (force-constants, G-matrix, etc.) that'd be nice.
Even just a PES is good enough for me. I'm working on adding cleaner PES support to my stuff so that I can do that harmonic analysis as well as more anharmonic stuff.
@halirutan It's already in there. I make use of it in getting the axes I use in conversion.
 
 
2 hours later…
8:53 PM
@C.E. I just tried to export a Histogram and it's...nasty. They use something nonstandard which effectively is built like this:
histogramRect[{xmin_, ymin_}, {xmax_, ymax_}, highlightStyle_] :=

 Dynamic@
  RawBoxes[{
    FEPrivate`If[CurrentValue["MouseOver"], highlightStyle, {}, {}],
    RectangleBox[{xmin, ymin}, {xmax_ ymax}, "RoundingRadius" -> 0]
    }]
So I need to add some special alias to get things like that to work cleanly. I'll likely drop all that highlightStyle stuff and just treat it as a standard Tooltip.
But happily adding specialized rules is pretty easy and doesn't necessitate a rewriting of anything else.
 
9:07 PM
A lot of the charts have interactive stuff built into them, like tooltips and shifting edges.
Good for interactivity, but a pain in the bum otherwise.
 
10:06 PM
@Szabolcs Should be back up now on the Raspberry Pi servers
2
@Szabolcs We also updated this page: wolfram.com/raspberry-pi which now has an extra button which lets you download an install script to install and configure Wolfram Engine / Mathematica by downloading from our servers
 

« first day (2462 days earlier)      last day (2023 days later) »