Inkscape Axonometric Projections 4.0
i

Jeroen HoekInkscape Axonometric Projections 4.0

Jeroen Hoek

This Inkscape extension transforms objects drawn on a two-dimensional plane to an isometric projection — or even any other dimetric or trimetric projection. Inkscape provides an axonometric grid that by default is configured for the isometric projection (i.e., the three axes are set at 120° angles). Drawing with this grid works quite well for simple shapes, but sometimes it is easier to draw the details of an object using a two-dimensional grid, and then scale, shear, and rotate the object to set it on an isometric plane. For more information, see: https://github.com/jdhoek/inkscape-isometric-projection For users of Inkscape versions older than 1.0-beta2, please use version 1.2 of this extension: https://github.com/jdhoek/inkscape-isometric-projection/releases/tag/v1.2 If you find a bug, please report it here: https://github.com/jdhoek/inkscape-isometric-projection/issues


Comment here...
Removeduplicatenodes
i

Ellen WasbøRemoveduplicatenodes

Ellen Wasbø

Remove duplicate nodes from path and join nodes closer than a specified distance. Optionally close paths if start/end nodes are closer than a specified distance. When joining nodes the new coordinate will be interpolated from the original coordinates. If separate paths are combined (Ctrl+K) these can be joined if closer than a specified distance. This join can be either a straight line or an interpolation. The extension will appear in Extensions -> Cutlings


Comment here...
Another Perspective
i

macricoAnother Perspective

macrico

AnotherPerspective is just a rewrite of the perspective Inkscape extension. With this another algorithme, the result should be more predictable and logic. This is the end of unexpected rotations ! Thanks to Aaron Spike for writing the original extension and Timo Kähkönen for writing the original JS algorithme. For more informations about the process read the post from which the idea of the extention come : https://stackoverflow.com/questions/12919398/perspective-transform-of-svg-paths-four-corner-distort


Comment here...
Multiple Boolean Operations with Inx Pathops
i

Maren HachmannMultiple Boolean Operations with Inx Pathops

Maren Hachmann

Boolean operations for multiple objects at once - difference, union, intersection, exclusion, division or cut. The extension is a rewrite of the Multi-Bool extension, and offers many adjustable settings and improvements. It takes a selection of one or more groups, or of several elements (paths, shapes, text), or a mix of both, and applies a chosen path operation with the top-most valid object in paint order and each other valid object which is part of the selection (directly or as member of a processed group) that is lower in Z-order. For more info, please refer to the README file at https://gitlab.com/moini_ink/inx-pathops/-/blob/master/README.md . Inkscape extension written by su-v and updated for Inkscape 1.0 – 1.4 by Maren Hachmann, licensed GPLv2 or higher.


Comment here...
Line Animator (draw by invisible hand)
i

Maren HachmannLine Animator (draw by invisible hand)

Maren Hachmann

Create simple, line-drawing animations for the web from selected paths. When you look at the file that you've applied the extension to using a web browser, it will look as if someone were drawing the paths with an invisible pen. Notes: * Find the extension as `Extensions > Animation > Line Animator` * **Only path objects** can be used for this. * **No path effects** should be applied to the paths (something may happen, but perhaps not what you expect). * The paths must have **a visible stroke** (else you won't see anything happen). * The object **lowest in stacking order** will be drawn **first**, then the one above it etc. * Animation speed can be changed by using the same animation name and selecting the same objects, then setting a different duration. * If you are animating a path consisting of **multiple subpaths**, all of them will start to be animated **at the same time**, but the shorter ones will finish first. * If you want to **change the direction** in which a path is drawn, change the path direction in Inkscape (`Path > Reverse`). Examples -------- See https://gitlab.com/Moini/ink_line_animator/-/blob/master/README.md Installation ------------ Drop the files `line-animator.py` and `line-animator.inx` into your user extensions directory. Learn where to find the directory in Inkscape: `Edit > Preferences > System > User extensions`. License ------- This software is licensed under the GPL v2.0 or higher. Note ---- Due to a bug in Inkscape (https://gitlab.com/inkscape/inbox/-/issues/9327), Inkscape 1.3 instantly crashes when you open the Selectors and CSS dialog. So don't do that!


Comment here...
Remove duplicate lines with tolerance
i

Ellen WasbøRemove duplicate lines with tolerance

Ellen Wasbø

Remove overlapping line segments to clean paths for cutting/plotting/engraving. As an option you can set a tolerance when comparing the line segments such that a perfect match is not needed. Read more and see examples here: http://cutlings.wasbo.net/inkscape-extension-removeduplicatelines/ The extension will appear in Extensions -> Cutlings


Comment here...
RealScale (resize by line of known length)
i

Maren HachmannRealScale (resize by line of known length)

Maren Hachmann

Quickly resize (architectural) drawings by indicating a line and its length in real world units. Optionally scale the drawing with a specific scale factor and draw a scale rule. Version 1.2, Inkscape extension for Inkscape 1.2 and higher. Download most current version from here: https://gitlab.com/Moini/inkscape-realscale-extension/-/archive/master/inkscape-realscale-extension-master.zip Installation: Copy the files realscale.py and realscale.inx into the directory indicated in Edit -> Preferences -> System: User extensions Usage: • Import an architectural drawing / floor plan / map /... into Inkscape or open a file containing one. Make sure it is a single object (group it, if necessary). • Draw a straight line that connects two points in that drawing of which you know the distance in real life (for example, if you know how long a wall of your house in the drawing is, draw the line from one end of the wall to the other). • Select the line, then add the drawing to the selection. • Open the extension dialog: Extensions -> Scaling -> RealScale... • Enter the length of the line you just drew, as it is in the real world (for example, if your house wall is 10.5 m long, enter 10.50. • Select the unit you used (for your 10.50 m house, select m; for your 10 cm cardboard box, select cm) • If you intend to print the drawing, and the original object is bigger than the sheet, consider using a scale factor. • To do so, first select if you want to use a metric scale factor (based on mulitples of 5) or an imperial one (based on multiples of 2) or if you would like to enter your own scale factor. • Then, in the corresponding dropdown, or in the number entry field, select or enter the scale you would like to use. The dropdowns only offer scale factors for downscaling. In the 'Custom' field, however, you can also enter values smaller than 1 to upscale a drawing. • If you would like the scale rule to be drawn on the page, check the option 'Generate Scale Rule'. • Now choose the number of units the scale rule will comprise. Those will be doubled in the generated scale rule - e.g. it will show 10 cm to the left of the scale rule center (labelled 0) and 10 cm to its right. • Apply!


Comment here...
Mirror
i

jekoMirror

jeko

Extension to mirror/flip objects along a line. The zip file contains 4 versions: for Inkscape 0.92, 1.0, 1.1, 1.2. Only tested on Windows but should work on all platforms. You need to select two objects simultaneously and then apply the extension. Select the object (shape, group, image, etc.) you want to mirror first, press "shift", and then select the mirror line (consisting of exactly 2 nodes) second. The extension can be found under "Extensions -> Modify Path -> Mirror"


Comment here...
Contour Scanner And Trimmer
i

Mario VoigtContour Scanner And Trimmer

Mario Voigt

This tool helps you to find nasty contours which might bug you and prevent your work from being ready for production. It will find open contours, closed contours and self-intersecting contours. Self-intersecting contours can be closed or open contours so you can select this option additionally! Bentley-Ottmann algorithm is used to check for those intersections. The algorithm works with the accuracy of the selected paths (epsilons). Self-intersections usually happen if you just have large overlaps where the contour crosses itself like an 'eight' character for example. Using the highlighting it's easy to find contours with unproper path handles. While in a CAD system an area of of a surface can only be calculated if the contour is closed and clean, finding self intersections in InkScape is not required to do so. SVG format allows to calculate areas on open contours and self-twisted curves. This "artwork behaviour" makes it harder for handling machinery-like drawings for laser cutting, vinyl cutting or whatever. That's why we need to have extra sanity checks but we also have the great freedom of Inkscape. Finding self-intersecting contours does only work for curves with straight line segments (polylines) because it just calculates with a set of given XY points. It does not respect bezier curve segments. Bezier curves have no regular points but special handles, which define the slope of the curve per handle side (left and right). To properly handle a bezier curve we need to split the bezier curve in a lot of small linear segments (acting like infinitessimal solution). We can use the tool "Flatten Bezier to do this (will make your curve looking edgy or ugly possible). If you want to leave the shape of the line clean (bezier type, no edgy approximation) we can use Split Bezier (Subdivide) or Add Nodes instead. But remember that your calculated self-intersection points will only be an approximation then. The higher the subdivide count is the higher the precision of the calculated self-intersecting points coordinates will be.


Comment here...
Snap Object Points
i

Scott PakinSnap Object Points

Scott Pakin

Snap nearby points across two or more paths to their average coordinates. This extension can be used to help interlock adjacent shapes like pieces of a jigsaw puzzle.


Comment here...
objectgradient
i

biapyobjectgradient

biapy

Inkscape extension to apply a gradient of colors accross selected objects. Once installed, the extension is available at "Extensions -> Render -> Object gradient".


Comment here...
Extruder for 3-d Papercraft
i

Sue ZakarExtruder for 3-d Papercraft

Sue Zakar

This extension creates the pieces needed to construct a 3D extruded papercraft project from a path (composed of straight segments) that defines its shape. Tabs and score lines are included. Both the decorative an the structural pieces are created. When installed, it will be under Extensions -- Papercraft Most recent documentation and code are at the link provided Updated to correct scoring color: 08/19/2022


Comment here...
Paste Length Effect
i

Khemadeva .Paste Length Effect

Khemadeva .

This effect makes the length of all the destination paths the same as that of the source path, while maintaining their shapes. The source is the topmost path in the selection. Quick introduction: https://youtu.be/L7Z48mZlhV0 Please see: https://github.com/Shriinivas/inkscapepastelength for downloads (ed.)


Comment here...
Ids to text elements
i

whidevIds to text elements

whidev

A simple Inkscape extension that lets you extract attributes (like id) from all selected paths, and show them as <text> elements inside the paths. Useful for when you want to have all paths' id shown on the SVG document as <text> nodes. You can also use it for other path attributes, like `label`, `fill`, `stroke`, `width`, `height`. Available under the Extensions > Text submenu. Check the extension's repo on GitHub for examples. Options for styling and formatting the text: Font size in pixels Color (the fill color of the <text> elements) Font (should be installed on the system) Font Weight (should be supported by the selected font) Angle (controls the rotation of the generated <text> elements, in degrees) Options for further editing the extracted text (only used with id and label attributes): Text to replace (a simple replace function to remove characters you may not want from the text) Match Regular Expression (matches the extracted text of each path to a regular expression and uses the result on the path, e.g. if the id is `Province_055` and this field `\d+`, the text on the path will be just `055`) Capitalize (capitalize all text) Group paths with the generated text elements (if checked, also group the path with its text label) Note: only works on <path> elements. If you have a <circle>, <rectangle>, <text>, etc., first use Object > Object to Path to convert it. For Inkscape v0.92 and before, you should check the extension's repository on GitHub.


Comment here...
Group to Layer
i

Rania AminaGroup to Layer

Rania Amina

This extension is owned by stuart@pernsteiner.org and as written in python file, everyone allowed to modify as long as comply with the provisions that have been determined. So, we modify this extension in order to make Group to Layer Extension can running well on Inkscape 1.0.


Comment here...
Stroke Color As Fill
i

Jabiertxo Arraiza CenozStroke Color As Fill

Jabiertxo Arraiza Cenoz

Basicaly get the color fill and add to the stroke. and inverse. Also has an optional alpha. For <= 0.91 you can uncomment line 19 to allow markers without strokes in inkscape <= inkscape0.92-prerelease3. The video play with diferent based features like create Delaunay from any draw in two easy steps(use the extension at the end to allow fix gap between triangles) and play with markers and custom markers. New version -0.2- highly based on the work of suv (made a similar and beter extension previously)


Comment here...
Move Path Node
i

Mario VoigtMove Path Node

Mario Voigt

Extension to change starting node of a path and visualize it by dots and numbers Notes: Use "Path → Reverse" to change path direction Use extension "Chain Paths" to make closed paths out of segments. Docs: https://stadtfabrikanten.org/display/IFM/Move+Path+Node


Comment here...
Round Corners
i

Jürgen WeigertRound Corners

Jürgen Weigert

Apply a radius to sharp corners of a path. The extension is written for inkscape 1.0.1 (but also contains a backport for 0.92.4). Usage: The screenshot demonstrates the usage. In the upper half, a red path with 4 vertices is shown. We select two vertices: the top left and bottom left corner (shown in blue). Run "Rounded Corners" from "Extensions" -> "Modify Path". The result is the path below. (Viewed here in edit mode again to show all the new vertices.)


Comment here...
lirror
i

tgklirror

tgk

Inkscape extension for creating generative art. The scope of this extension has been kept very minimal. It simply takes the selected object(s) and creates the specified number of copies of it. Each new copy will have a cumulative transformation applied to it where each transformation consists of - a rotation around 0,0 (top left of the canvas), - a shift in x and y, and - a scale operation in x and y. The rotation and shift operation can be done either lineraly (the same amount for every copy) or by a sinusidal factor (oscillating for each copy). The source is available at https://github.com/tgk/lirror


Comment here...
Living Hinge Creator for Inkscape 1.0
i

drphononLiving Hinge Creator for Inkscape 1.0

drphonon

Updated for Inkscape 1.0 This extension creates cut lines to make a living hinge when laser cutting material. Options include the length of the cuts, the separation between sequential cuts, and the separation between adjacent cuts. All parameters are stored in the "Object Properties" field of the resulting object. Installation Download and unzip the file. Copy living_hinge.inx and living_hinge.py to your extension directory. --Linux Run the shell script copy_files.sh. This will copy living_hinge.inx and living_hinge.py to ~/.config/inkscape/extensions Instructions on how to use the extension can be found here: http://wiki.lvl1.org/Inkscape_Extension_to_Render_a_Living_Hinge


Comment here...
vpypetools - vpype for Inkscape
i

Mario Voigtvpypetools - vpype for Inkscape

Mario Voigt

vpype is a command processor working with SVG files. It can do a lot of productive steps to optimize files for different purposes like pen plotting, laser cutting or the generation of creative artwork. vpype is really powerful and helps to extend Inkscape feature capability. vpype contains a lot of functionality which is included natively within Inkscape. The extension "vpype for Inkscape" does not deal with all features but with a set of important commands like linemerge, linesort, linesimplify, occult, etc. We can use it to shorten tool path lengths, remove hiddenlines and so on. vpype converts all elements into simple SVG elements like svg:line, svg:polyline and svg:polygon. They can be displayed properly in Inkscape, but they have no knot handles to edit (see https://alpha.inkscape.org/vectors/www.inkscapeforum.com/viewtopicb51d.html?f=16&t=32562). We need to convert those elements to svg:path using key combination CTRL + SHIFT + C ("object to path"; do not use "stroke to path" because it will duplicate your outline with inset and outset contours). Our extension allows to do this conversion automatically. Documentation: https://stadtfabrikanten.org/display/IFM/vpypetools


Comment here...
Parallel Translation Extension
i

chris371Parallel Translation Extension

chris371

This extension allows parallel translations and alignment operations of selected straight lines. It has been written to help making a strange kind of paper cube with angles different to 90 degrees. It helps to align the faces together and to add complex folding flaps with lines in different colors to the edges. There are options to resize the length of the flaps so that they match the length of the edges.


Comment here...
Create Links (Breakaway Connectors)
i

Mario VoigtCreate Links (Breakaway Connectors)

Mario Voigt

To create tabs in Inkscape, we cannot properly use the integrated eraser tool. It will clip only in a cosmetic fashion but we do not get the real paths we need. Creating links (also known as microtabs, tabs, bridges, breakaway connectors, links, perforations) is sometimes required for laser cutting or vinyl cutting. This extension allows to pinch paths to create according segments - no cosmetic one's, but real segments. It will split up open or closed contours with user defined rules. To get best output please try to close open paths before using. Docs: https://stadtfabrikanten.org/pages/viewpage.action?pageId=104923235


Comment here...
Inkscape Travel Extension
i

Rich PangInkscape Travel Extension

Rich Pang

Copy, rotate, and resize a path or group of paths along a precise parametric trajectory. Tested on Mac OS X High Sierra and Ubuntu Linux (16.04 LTS), with Inkscape 0.91. --- Curated by Maren Hachmann on March 22 2018 12:26 AM: fixed version tag so it will be selectable directly from extensions tag list.


Comment here...
Origami-Ext
i

fdesarOrigami-Ext

fdesar

Extension for drawing Origami diagrams. Helps drawing all Huzita-Hatori-Justin Axioms (1-7), find the Rabbit-Ear complementary crease and does angles and segments N-Sections. Fully internationalized : currently, English (native) and a French translation are available. Need Inkscape0.92 or later. Comes with easy install scripts for Linux (tested on Ubuntu and Mint, Fedora & Suse), Windows (tested on Windows 10 Family) and MacOS (tested on High Sierra with MacPorts Inkscape). Enjoy! New version released on 02/01/2020, version 0.70


Comment here...
Convert To Polylines
i

Mario VoigtConvert To Polylines

Mario Voigt

This extension takes the points of a path and make a straight polyline out of it. Nothing less, nothing more. You can do the same with default InkScape UI but it might be quicker to use in some use cases. This extension handles duplicate points on a path by removing them.


Comment here...
Reverse Order of Subpaths
i

Ellen WasbøReverse Order of Subpaths

Ellen Wasbø

When drawing paths and then combining these the order will be from the last to the first drawn. Use this simple extension to reverse the order of the subpaths without reversing the direction of each subpath. Then the original drawn order will be restored. The extension can be found from Extensions > Modify Path. Tested with v1.0.1, v1.0.2 and v1.1 on Windows 10 Use together with the Number Subpaths extension to visualize the effect of this reordering.


Comment here...
incadiff
i

Thomas Maziereincadiff

Thomas Maziere

Apply successive difference operations on superimposed paths. Useful for plotter addicts as it removes hidden strokes. I use it on Processing generative art, before plotting it with an Axidraw. Select fewer than 64 shapes/paths at a time for performance reasons. Developed thanks to Incaya, a french worker cooperative.


Comment here...
path animation
i

katkittypath animation

katkitty

Create svg path animation from frames. A path can be animated as follows: <path d="{orignal frame}"> <animate attributeName="d" attributeType="XML" begin="0s" dur="0.73" repeatCount="2" values="{frame1};{frame2}[;{framen}]"> </path> Most browsers will draw the path, then animate it, interpolating between the paths in the animate values list. Some i-phone browsers do not animate. Grrr. To use: Place each frame of the animation in a layer named 'frame{n}'. Each of these layers should have the same number of paths, and each path should have the same number of points as the corresponding path in other layers. The animation is applied to the paths in the first layer in the sequence, so the properties of that layer are used. Animations with different numbers of frames can be put into different sequences, named 'sequence{n}', using sub-groups: Layers: > not_animated_layer1 > sequence1 >> frame1 >>> path1a >>> path2a >> frame5 >>> path1b >>> path2b >> frame2 >>> path1c >>> path2c >> frame4 >>> path1d >>> path2d > sequence5 >> frame >> frame >> frame NOTE, any numbers on frames or sequence are ignored. The z order of frames and paths determine their position in the animation. SUGGESTION: Set all frames but the first to not display or even delete them before using the animated SVG in a browser. Experiment with different duration times for each path. NOTE: The pop-up box does not close after creating the animate node. The node appears under the paths in the first frame of each sequence. NOTE: Inkscape does NOT run the animation! You need to load the svg into a web browser to see it.


Comment here...
OptimLaser
i

FrankI4466OptimLaser

FrankI4466

This script optimizes a drawing for laser cutting: - Removes overlapping lines; - Saves the modified file with a new name; - Applies modifications to the entire document or to the selection; - Optimizes the cutting order. Translated in english. Please send me pot file for other languages.


Comment here...
Split And Break Bezier At T
i

Mario VoigtSplit And Break Bezier At T

Mario Voigt

Splits a path at value t=0..1 (t=0.5 means 50%) Applies independently for each sub path in selection. Docs: https://stadtfabrikanten.org/display/IFM/Split+And+Break+Bezier+At+t


Comment here...
Openclosedpath
i

Ellen WasbøOpenclosedpath

Ellen Wasbø

This extension will open up closed paths by removing all z-commands from the selected paths. My purpose: to use single line svg-fonts as otf/ttf/opf fonts. These font formats require closed paths and will add a closing command to the glyphs. This closing can be removed by converting the text to paths, ungroup and then using this extension.


Comment here...
Exponential X-Axis
i

Jürgen WeigertExponential X-Axis

Jürgen Weigert

This Inkscape extension transforms an object along the x-axis. The bounding box remains unchanged. Points near the center of the object move to create the illusion of a curved surface. Points move left, if you choose an exponent > 1, and right if the exponent is < 1. An exponent of 1.0 does exactly nothing. This can be used in combination with the bend path effect to create a cone projection that retains aspect ratio. Idea from Simon Budig while preparing for the lampshade workshop.


Comment here...
Cut encoding for Shaper Origin
i

hosliCut encoding for Shaper Origin

hosli

The extension sets the line colors and fill colors based on Shaper Origin defaults. the manual cutting depth can also be set. In addition, the extension allows a check for closed paths. Die erweiterung setzt die Linienfarben und Füllfarben anhand der vorgabe von Shaper Origin. es kann auch die manuelle schnitt tiefe eingestellt werden. zusätzlich erlaubt die erweiterung einen check auf geschlossene Pfade.


Comment here...
Sibelius ViewBox
i

musikaiSibelius ViewBox

musikai

This is an extension for Inkscape 1.2 for correcting SVG-files that were exported by Sibelius via the graphic selection tool. These SVG are always the full page with 4 white rectangles that cover the unwanted area. The page size and viewbox isn't set correctly to show only the selected area. The extension will correct this and has the options to - remove the white cover boxes - remove all elements that are outside the page (most of it). #### Download: Click on the image above #### Video: https://www.youtube.com/watch?v=Jg7QqarVrA4 #### Installation: On Windows extract the zip file into something like this path: C:\Users\yourname\AppData\Roaming\inkscape\extensions\ To find and open the correct folder you can also open Inkscape->Edit->Preferences->System->User Extensions->Open After installation and restart Inkscape you can run the extension in "Extensions"->Document->Sibelius Viewbox. #### (Optional) Usage as .bat-file to process multiple SVGs: As it is a python script it also can be used to batch process multiple files via command line. Put this line into a text-file, edit the paths (yourname) and save as SibeliusViewbox.bat: for %%a in (%*) do python.exe "C:\Users\yourname\AppData\Roaming\inkscape\extensions\SibeliusViewbox\SibeliusViewboxExtension.py" --remove_whiteboxes=True --remove_elements=True %%a > %%a_viewbox.svg An example .bat-file is included. Once created you can drag and drop multiple SVGs onto the SibeliusViewbox.bat-file and the script will generate the corrected SVGs. Note: If Inkscape is not installed in "C:\Program Files\" you must edit the Python script. #### (Optional) Add .bat-file to Send-to-Menu: You can add the .bat-file to the Windows Send-to-menu. Open Windows-Explorer and insert this into the address-bar: shell:sendto This opens the Send-to-folder. Copy the .bat-file into it. Now you can select all your SVGs, right click -> Send-to -> SibeliusViewbox.bat


Comment here...
Marz
i

FrankMarz

Frank

This extension is for users of the FreeCAD Marz Workbench that relies on inkscape svg files. The user can add the required information to the paths in Inkscape so the Marz WB can recognize them as valid geometry references. Development: https://github.com/mnesarco/MarzWorkbench Tested on: Inkscape 1.3.2 (091e20ef0f, 2023-11-25) GLib version: 2.78.4 GTK version: 3.24.41 glibmm version: 2.66.1 gtkmm version: 3.24.5 libxml2 version: 2.11.5 libxslt version: 1.1.39 Cairo version: 1.18.0 Pango version: 1.51.2 HarfBuzz version: 8.1.1 OS version: GNOME 45 (Flatpak runtime)


Comment here...
Jointure rapide (quick joint)
i

FrankI4466Jointure rapide (quick joint)

FrankI4466

Initially fork of this one : https://inkscape.org/fr/~Jarrett/%E2%98%85quickjoint. Added some functionnality : - Translate in english and french. Possibility for other languages. - One click in inkscape update. - Convert in path inside the extension. - Possibility to make a database of material with kerf. Select an object, run the extension and you can add tabs on each edge. You can also create slot for this edges.


Comment here...
Paths to Lines
i

Scott PakinPaths to Lines

Scott Pakin

Paths to Lines converts a path to a sequence of lines, represented internally using your choice of SVG <line>, <polyline>, or <path> elements. It is similar to the Flatten Beziers, Straighten Segments, and Convert to Polylines extensions, but those always leave the path as an SVG <path> while Paths to Lines offers the user a choice among multiple SVG representations.


Comment here...