
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
pgljupyter
Advanced tools
PlantGL & L-Py jupyter widgets
Currently supports openalea.lpy>=3.9.0 and openalea.plantgl>=3.14.0 from conda channel 'fredboudon'.
a tree model - leuwenberg @nbviewer
plot magic - leuwenberg @nbviewer
champignon @nbviewer
magics with scalar parameters - broccoli @nbviewer
magics with curve parameters - sweep surface @nbviewer
from pgljupyter import SceneWidget, LsystemWidget
SceneWidget
Renderer for PlantGL Scenes, Shapes, Geometries
Arguments:
arg0
list | plantgl.Shape | plantgl.Scene: a list of shapes or scenes or a single objectposition
tuple (float, float, float): x, y, z position of arg0 (default (0, 0, 0))scale
float: scale factor for arg0 (default 1)size_display
tuple (int, int): width and height of the canvas (minimum 400)size_world
float: extend on the 3D scene in all directionsExample:
from openalea.plantgl.all import Scene, Sphere
from pgljupyter import SceneWidget
s = Scene([Sphere()])
sw = SceneWidget(s)
sw
Tutorial:
LsystemWidget
Renderer for lpy.Lstrings derived from lpy.Lsystem code
Arguments:
arg0
string: file name / path of lpy code fileunit
string enum: the unit used in the Lsystem model ('m', 'dm', 'cm', 'mm', default 'm')scale
float: scale factor for arg0 (default 1)animate
bool: if True
runs animation automaticallysize_display
tuple (int, int): width and height of the canvas (minimum 400)size_world
float: extend on the 3D scene in all directionsImportant property/methods:
editor
: display an editor of the graphical parametersget_lstring(self)
: return the lstring corresponding to the current step of the simulation display in the widget.get_namespace(self)
: return the namespace of variables of the simulationExample:
from pgljupyter import LsystemWidget
lw = LsystemWidget('myfile.lpy')
lw
lw.editor
Tutorial:
%%lpy
A cell magic to inline L-Py code in a notebook
Arguments:
--size
, -s
int,int: same as size_display
--world
, -w
float: same as size_world
--unit
, -u
enum: same as unit
--params
, -p
LsystemParameters: name of LsystemParameters instance--animate
, -a
True: runs animation automatically--extended-editor
, -e
False: show/hide all parameter controlsExample:
# activated by importing pgljupyter
import pgljupyter
%%lpy -u cm
from openalea.plantgl.all import *
Axiom: ;(1)+(10)_(2)F(10);(0)@g(Paraboloid(10,10,2,False))
derivation length: 100
production:
F(x) --> F(x+0.2)
@g(p) --> @g(Paraboloid(p.radius + 0.15, p.height + 0.2, 2, False))
_(x) --> _(x+0.02)
Example with graphical parameters:
# activated by importing pgljupyter
import pgljupyter
from openalea.lpy.lsysparameters import LsystemParameters
lp = LsystemParameters()
lp.add_scalar(name='a', value=1, minvalue=0, maxvalue=100)
lp.add_function(name='b') # default graphical function created
%%lpy -p lp
Axiom: SetGuide(b,a)F(a)
Tutorials:
%lpy_plot
A line magic to plot all derivation steps of an Lsystem on a square plane
Arguments:
arg0
, string: L-Py file--size
, -s
int,int: width and hight of the canvas--cell
, -c
float: size of cell for a single derivation step--derive
, -d
int[,int[,int]]: start, stop, step derivationExample:
# activated by importing pgljupyter
import pgljupyter
%lpy_plot myfile.lpy
Tutorial:
Some examples also require matplotlib
, xarray-simlab
and rpy2
.
conda create -y -n pgl -c fredboudon -c conda-forge \
openalea.lpy jupyterlab ipywidgets pip
conda activate pgl
pip install pgljupyter
mamba env create -f environment-dev.yml
conda activate pgljupyter-dev
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install 2.0.29
./emsdk activate 2.0.29
source ./emsdk_env.sh
cd ..
git clone https://github.com/jvail/plantgl-jupyter.git
cd plantgl-jupyter
git submodule update --init --recursive
cd src/pgljs
npm install
cd ../..
npm install
npm run build:all
pip install -e .
jupyter labextension develop . --overwrite
jupyter lab --notebook-dir=./examples
pip uninstall pgljupyter
In development mode, you will also need to remove the symlink created by jupyter labextension develop
command. To find its location, you can run jupyter labextension list
to figure out where the labextensions
folder is located. Then you can remove the symlink named pgljupyter
within that folder.
FAQs
PlantGL and L-Py Jupyter widgets
The npm package pgljupyter receives a total of 8 weekly downloads. As such, pgljupyter popularity was classified as not popular.
We found that pgljupyter demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.